タグ付けされた質問 「spring-mvc」

Model-View-Controller(MVC)パターンに基づいてJava Webアプリケーションを構築するためのフレームワーク。これは、基礎となるビューテクノロジーから、柔軟で分離されたコードを促進します。

4
JSR-303 @Validアノテーションが子オブジェクトのリストに対して機能しない
私の主なクラスは public class UserAddressesForm { @NotEmpty private String firstName; @NotEmpty private String lastName; private List<AddressForm> addresses; ... setters and getters public class AddressForm { @NotEmpty private String customName; @NotEmpty private String city; @NotEmpty private String streetAn; @NotEmpty private String streetHn; @NotEmpty private String addressCountry; @NotEmpty private String postCode; ... setters …
95 java  json  spring  spring-mvc  jsr 

16
Spring ApplicationContext-リソースリーク:「コンテキスト」は決して閉じられません
Spring MVCアプリケーションでは、次のアプローチを使用して、サービスクラスの1つで変数を初期化します。 ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/userLibrary.xml"); service = context.getBean(UserLibrary.class); UserLibraryは、アプリケーションで使用しているサードパーティのユーティリティです。上記のコードは、 'context'変数の警告を生成します。警告は次のとおりです。 Resource leak: 'context' is never closed 警告がわかりません。アプリケーションはSpring MVCアプリケーションであるため、アプリケーションの実行中にサービスを参照しているため、コンテキストを実際に閉じたり破棄したりすることはできません。警告は私に伝えようとしている正確なものは何ですか?

3
Spring BeanPostProcessorはどのように正確に機能しますか?
Spring Core認定について勉強しています。SpringがBeanのライフサイクルをどのように処理するか、特にBeanポストプロセッサについては疑問があります。 だから私はこのスキーマを持っています: それが何を意味するかは私にはかなり明らかです: 次の手順は、Bean定義のロード段階で行われます。 @Configurationのクラスが処理され、および/または@Componentsがスキャンされ、および/またはXMLファイルが解析されます。 BeanFactoryに追加されたBean定義(それぞれはそのIDでインデックスが付けられます) 呼び出された特別なBeanFactoryPostProcessor Beanは、任意のBeanの定義を変更できます(たとえば、プロパティー-プレースホルダー値の置換用)。 次に、次の手順がBean作成フェーズで行われます。 各Beanはデフォルトで積極的にインスタンス化されます(依存関係が挿入された正しい順序で作成されます)。 依存関係の注入後、各Beanは後処理フェーズを通過し、追加の構成と初期化が行われる可能性があります。 後処理後、Beanは完全に初期化され、使用できる状態になります(コンテキストが破棄されるまで、IDによって追跡されます) わかりました、これは私にはかなり明確であり、次の2種類のBeanポストプロセッサがあることも知っています。 初期化子:指示された場合はBeanを初期化します(つまり、@ PostConstruct)。 そしてすべての残り:追加の設定を可能にし、それが初期化工程の前または後に実行可能 そして私はこのスライドを投稿します: したがって、イニシャライザ Beanポストプロセッサが何を行うかは非常に明確です(これらは@PostContructアノテーションが付けられたメソッドであり、セッターメソッドの直後に(つまり、依存関係の注入後に)自動的に呼び出されます)。いくつかの初期化バッチを実行します(前の例のようにキャッシュに入力します)。 しかし、他のBeanポストプロセッサを正確に表すものは何でしょうか。これらのステップが初期化フェーズの前または後に実行されるとはどういう意味ですか? そのため、私のBeanがインスタンス化され、その依存関係が注入されるため、初期化フェーズは(@PostContructアノテーション付きメソッドの実行によって)完了します。初期化フェーズの前にBean Post Processorが使用されているとはどういう意味ですか?@PostContructアノテーション付きメソッドの実行前に発生するということですか?これは、依存関係の注入前(セッターメソッドが呼び出される前)に発生する可能性があることを意味しますか? そして、それが初期化ステップの後に実行されると言うとき、私たちは正確にどういう意味ですか。@PostContructアノテーション付きメソッドの実行後に発生することを意味しますか? @PostContructアノテーション付きメソッドが必要な理由を頭の中で簡単に理解できますが、他の種類のBeanポストプロセッサの典型的な例を理解できません。

9
Spring MVC Controller get callでIPアドレスを抽出する方法は?
私は、ブラウザーからGETURL呼び出しを行うSpringMVCコントローラープロジェクトに取り組んでいます- 以下は、ブラウザからGET呼び出しを行うためのURLです- http://127.0.0.1:8080/testweb/processing?workflow=test&conf=20140324&dc=all そして、以下はブラウザを押した後に呼び出しが来るコードです- @RequestMapping(value = "processing", method = RequestMethod.GET) public @ResponseBody ProcessResponse processData(@RequestParam("workflow") final String workflow, @RequestParam("conf") final String value, @RequestParam("dc") final String dc) { System.out.println(workflow); System.out.println(value); System.out.println(dc); // some other code } 問題文:- 今、私はいくつかのヘッダーからIPアドレスを抽出することができますか?つまり、どのIPアドレスから電話がかかってきているのかを知りたいのです。つまり、上記のURLに電話をかけている人は誰でも、そのIPアドレスを知る必要があります。これは可能ですか?


2
異なる引数を使用して同じURLパターンに対して2つのメソッドを作成します
1つのURL「serachUser」に2つの異なる値(リクエストパラメータ)userIdまたはUserNameが含まれるシナリオがあります。 そのため、2つのメソッドを作成しました public String searchUserById(@RequestParam long userID, Model model) public ModelAndView searchUserByName(@RequestParam String userName) しかし、あいまいなマッピングで例外が見つかりました。Springにはこの状況に対処する方法があります。

5
春のフォームタグのmodelAttributeとcommandName属性の違いは?
Spring 3では、jspのフォームタグに2つの異なる属性があるのを見てきました <form:form method="post" modelAttribute="login"> この場合、属性modelAttributeは、フォームの入力に使用されるプロパティを持つフォームオブジェクトの名前です。フォームの投稿や、@ModelAttribute値の取得、バリデーターの呼び出し、ビジネスロジックの適用に使用したコントローラーで使用しました。ここはすべて元気です。今 <form:form method="post" commandName="login"> この属性は何を期待していますか?これは、プロパティを設定するフォームオブジェクトでもありますか?

9
Spring MVCが404で応答し、「DispatcherServletでURI […]を使用したHTTPリクエストのマッピングが見つかりません」と報告するのはなぜですか?
TomcatにデプロイされたSpringMVCアプリケーションを作成しています。次の最小限の完全で検証可能な例を参照してください public class Application extends AbstractAnnotationConfigDispatcherServletInitializer { protected Class<?>[] getRootConfigClasses() { return new Class<?>[] { }; } protected Class<?>[] getServletConfigClasses() { return new Class<?>[] { SpringServletConfig.class }; } protected String[] getServletMappings() { return new String[] { "/*" }; } } どこにSpringServletConfigありますか @Configuration @ComponentScan("com.example.controllers") @EnableWebMvc public class SpringServletConfig { @Bean public …

7
Jacksonを使用した列挙型のシリアル化
以下に列挙されたEnumがあります。 public enum OrderType { UNKNOWN(0, "Undefined"), TYPEA(1, "Type A"), TYPEB(2, "Type B"), TYPEC(3, "Type C"); private Integer id; private String name; private WorkOrderType(Integer id, String name) { this.id = id; this.name = name; } //Setters, getters.... } コントローラー(new OrderType[] {UNKNOWN,TYPEA,TYPEB,TYPEC};)で列挙配列を返し、Springはそれを次のjson文字列にシリアル化します。 ["UNKNOWN", "TYPEA", "TYPEB", "TYPEC"] JacksonにPOJOと同じように列挙型のシリアル化を強制する最善の方法は何ですか?例えば: [ {"id": 1, "name": …

9
マルチパートファイルをファイルに変換する方法は?
マルチパートファイル(org.springframework.web.multipart.MultipartFile)をファイル(java.io.File)に変換する最良の方法を教えてもらえますか? 私の春のmvcWebプロジェクトでは、アップロードされたファイルをマルチパートファイルとして取得しています。ファイル(io)に変換する必要があるため、この画像保存サービス(Cloudinary)を呼び出すことができます。タイプは(File)のみです。 私はたくさんの検索をしましたが失敗しました。誰かが良い標準的な方法を知っているなら私に知らせてください。Thnx

3
Spring @ResponseBodyアノテーションはどのように機能しますか?
次のように注釈が付けられたメソッドがあります。 /** * Provide a list of all accounts. */ // TODO 02: Complete this method. Add annotations to respond // to GET /accounts and return a List<Account> to be converted. // Save your work and restart the server. You should get JSON results when accessing // http://localhost:8080/rest-ws/app/accounts @RequestMapping(value="/orders", method=RequestMethod.GET) …
89 java  json  spring  rest  spring-mvc 

16
@ Autowired-依存関係に適したタイプのBeanが見つかりません
SpringとHibernateを使用して、エンティティ、サービス、およびサービスのJUnitテストを作成することからプロジェクトを開始しました。これはすべてうまく機能します。次に、さまざまなステップバイステップのチュートリアルを使用してこのWebアプリケーションを作成するためにspring-mvcを追加しましたが、@ Autowiredアノテーションを使用してコントローラーを作成しようとすると、デプロイ中にGlassfishからエラーが発生します。どういうわけかSpringは私のサービスを認識していないと思いますが、何度も試みてもまだ処理できません。 を使用したサービスのテスト @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:/beans.xml"}) そして @Autowired MailManager mailManager; 正しく動作します。 @Autowiredのないコントローラーも、問題なくWebブラウザーでプロジェクトを開くことができます。 /src/main/resources/beans.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_2_0.xsd"> <context:property-placeholder location="jdbc.properties" /> <context:component-scan base-package="pl.com.radzikowski.webmail"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component-scan> <!--<context:component-scan …

8
SpringでSessionオブジェクトを取得するにはどうすればよいですか?
私はSpringとSpringのセキュリティに比較的慣れていません。 Springセキュリティを使用してサーバー側でユーザーを認証する必要があるプログラムを作成しようとしていました。 私は次のことを思いついた: public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{ @Override protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken) throws AuthenticationException { System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated()); } @Override protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException { System.out.println("Method invoked : retrieveUser"); //so far so good, i can authenticate user here, and throw …

7
Spring 5.0.3 RequestRejectedException:URLが正規化されていないため、リクエストが拒否されました
これがSpring5.0.3のバグなのか、それとも私の側で問題を修正するための新機能なのかわからない。 アップグレード後、このエラーが発生します。興味深いことに、このエラーは私のローカルマシンでのみ発生します。HTTPSプロトコルを使用したテスト環境での同じコードは正常に機能します。 続く... このエラーが発生する理由は、結果のJSPページをロードするためのURLがであるためです/location/thisPage.jsp。コードrequest.getRequestURI()を評価すると結果が得られます/WEB-INF/somelocation//location/thisPage.jsp。JSPページのURLをこれに固定すれば問題location/thisPage.jspなく動作します。 だから私の質問は、コードのパス/から削除するJSP必要があるということです。それが今後必要になるからです。それともSpring私のマシンとテスト環境の間の唯一の違いは、プロトコルであるとしてバグを導入しているHTTP対HTTPS。 org.springframework.security.web.firewall.RequestRejectedException: The request was rejected because the URL was not normalized. at org.springframework.security.web.firewall.StrictHttpFirewall.getFirewalledRequest(StrictHttpFirewall.java:123) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:194) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:186) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270)

9
@ValidアノテーションはSpringで何を示していますか?
次の例では、ScriptFileパラメーターに@Valid注釈が付けられています。 @Validアノテーションは何をしますか? @RequestMapping(value = "/scriptfile", method = RequestMethod.POST) public String create(@Valid ScriptFile scriptFile, BindingResult result, ModelMap modelMap) { if (scriptFile == null) throw new IllegalArgumentException("A scriptFile is required"); if (result.hasErrors()) { modelMap.addAttribute("scriptFile", scriptFile); modelMap.addAttribute("showcases", ShowCase.findAllShowCases()); return "scriptfile/create"; } scriptFile.persist(); return "redirect:/scriptfile/" + scriptFile.getId(); }

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.