1

私はTomcat6とSpring2.5を使用してSpringアプリケーションに取り組んでいます。URLマッピングを正しく取得しようとしています。私が仕事をしたいのは次のとおりです。

http://localhost:8080/idptest -> doesn't work

ただし、代わりに、マッピングを解決するために、URLでコンテキスト名を参照する必要があります。

http://localhost:8080/<context_name>/idptest -> works

Apacheなどの書き換え/プロキシエンジンを使用せずに、URLでコンテキスト名を参照する必要を回避するにはどうすればよいですか?

これが私のweb.xmlからのサーブレットの定義とマッピングです:

<servlet>
    <servlet-name>idptest</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/conf/idptest.xml</param-value>
    </init-param>

    <load-on-startup>1</load-on-startup> 
</servlet>

<servlet-mapping>
    <servlet-name>idptest</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

これが私のコントローラーの概要です(リクエストマッピングのアノテーションを表示しています):

@Controller
@RequestMapping("/idptest")
public class MyController  {

    @RequestMapping(method=RequestMethod.GET)
    public String setupForm(Model model){
            MyObject someObject = new MyObject();
        model.addAttribute("someObject", someObject);
        return "myform";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processSubmit(@ModelAttribute("someObject") MyObject someObject) throws Exception {
        // POST logic...
    }
}

ありがとう!

4

2 に答える 2

4

これは、Tomcatの場合、サーブレットコンテナによって異なります。WebアプリケーションをROOT Webアプリケーションとして、つまり$ CATALINA_HOME / webapps /ROOT/の下にデプロイする必要があります。

詳細はこちら

于 2010-04-23T18:11:41.987 に答える
1

warファイルの名前をROOT.warに変更するだけで、アプリケーションはルートコンテキストで実行されます(つまり、コンテキスト名が空になります)。

于 2010-04-23T18:11:44.347 に答える