0

私は Spring MVC3.2 を使用しており、登録フォーム ( http://my-server.com:8080/tracks/apks ) を持っています。ユーザーはそれをサーバーに投稿し、検証が失敗するとサーバーはエラー メッセージを返します。しかし、サーバーからエラー メッセージが表示され、URL が必要なものとは異なりました。これが私のコードです:

Web.xml
<servlet-mapping>
    <servlet-name>tracks</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>


applicationContext.xml
<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

@Controller
@RequestMapping("/apks")
public class ApkController {

@RequestMapping()
public ModelAndView index() {
    Map<String, Object> modelMap = new HashMap<String, Object>();
    modelMap.put("menus",   AdminService.getMenus("apks"));
    return new ModelAndView("apks", "model", modelMap);
}

@RequestMapping(value = "/insert", method = RequestMethod.POST)
public ModelAndView uploadApk(ApkInfo apkInfo, BindingResult bindingResult) {

     Map<String, Object> modelMap = new HashMap<String, Object>();
     modelMap.put("menus",   AdminService.getMenus("apks"));

     if (!fileExists(apk.getFileName())){

     modelMap.put("message", message); 
     }

     //Do something

     return new ModelAndView("apks", "model", modelMap);
}

uploadApk を呼び出した後、http://my-server.com:8080/tracks/apksを期待していましたが、返された URL はhttp://my-server.com:8080/tracks/apks/insertでした。

修正するにはどうすればよいですか?

前もって感謝します。

4

2 に答える 2

0

「返された URL」とはどういう意味ですか?

「 http://my-server.com:8080/apks/insert 」にアクセスして「uploadApk」メソッドを呼び出す必要があります。

@RequestMapping("/apks")

コントローラーと

@RequestMapping(value = "/insert", method = RequestMethod.POST)

「uploadApk」メソッドで。


「uploadApk」メソッドをどのように呼び出しましたか?

適切な回答を得るためには、そのことについてもっと説明する必要があると思います。


web.xml の servlet-mapping の URL パターンは「/」であるため、URL から「/tracks」を削除する必要があります。

「tracks」は単なるサーブレット名であり、サーブレット パスではありません。

そのため、/tracks/apks/insert にアクセスすると 404 エラーが発生します。代わりに /apks/insert にアクセスします。


「uploadApk」メソッドを呼び出した後にリダイレクトが必要になる可能性があると思います。これは、質問に「リダイレクト」タグを付けて「返された URL」という単語を使用したためです。(右?)

私の推測が正しく、ブラウザーをリダイレクトしたい場合は、SpringMVC 3.2 Redirect View docsを参照してください。

以下のコードを使用してリダイレクトします。

return new RedirectView("url-you-want");

また

return "redirect:url-you-want"
于 2013-04-09T05:00:03.353 に答える
0

観察のカップル。

  1. web.xml で、context-paran、サーブレット トラック、リスナーを指定していますか?
  2. spring 構成ファイルで context:component-scan が有効になっていますか?
  3. メソッド レベルで requestMapping を使用して、リクエストを特定のメソッドにマップします。
于 2013-04-09T05:12:19.660 に答える