2

簡単な春のアプリケーションを開発しています。jspがいくつかありますが、jspの名前とURLを変更したいと思います。コントローラを変更しました:

@RequestMapping(value = "/simpleForm.html", method = RequestMethod.GET)
public void simpleForm(Model model) {
       model.addAttribute(new User());
}

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)
public void simpleForm(Model model) {
       model.addAttribute(new User());
}

古いsimpleForm.jsptoの名前は、newName.jsp user私が次の形式で使用するクラスです。simpleform.jsp

私はそれを機能させることができませんでした。simpleform.jspが見つからないという404を取得しています。私はかなり立ち往生しています。

編集:私のビューリゾルバータグ:

<bean id="viewResolver"
        class="org.springframework.web.servlet.view.InternalResourceViewResolver">

        <property name="prefix">
            <value>WEB-INF/views/</value>
        </property>
        <property name="suffix">
            <value>.jsp</value>
        </property>
    </bean>

私のURLパターンは次のようなものです:

<servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/forms/*</url-pattern>
</servlet-mapping>

すべてのリンクで同じエラー()リソースが利用できないことがわかりました。名前を変えなかったものも。

また、から直接試してみましたnewName.jsp。それでも同じエラー!

4

6 に答える 6

0

変化する:

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)

に:

@RequestMapping(value = "/newName.jsp", method = RequestMethod.GET)
于 2012-07-17T08:21:05.750 に答える
0

@Controllerクラスにアノテーションがまだあることを再確認してください。誤って削除された404を確認しました。

于 2012-07-17T08:29:55.320 に答える
0

に変更してみてください

   @RequestMapping(value = "/newName.html", method = RequestMethod.GET)
    public String simpleForm(Model model) {
           model.addAttribute(new User());
           return "newName";  // returning the desired view
    }

viewResolverそして、それに応じて次のよう に定義したことを確認してください

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

アプリケーション構造に従ってプレフィックスを変更します。ビュー (コントローラーによって返される文字列) を取得し、プレフィックスとサフィックスを追加します。したがって、解決されたビューは になります/WEB-INF/jsp/newName.jsp

于 2012-07-17T08:25:18.517 に答える
0

404 エラーは、Web サイトでアクセスしようとしていたページがサーバー上で見つからなかったことを意味する HTTP ステータス コードです。
ご覧のとおり、サフィックスは .jsp です。これを試してください(WebContentにnewName.jspがある場合)

@RequestMapping(value = "/newName", method = RequestMethod.GET)
public void simpleForm(Model model) {
   model.addAttribute(new User());
}
于 2012-07-17T08:34:35.033 に答える
0

それはうまくいくはずです

このURLを試してみると

http://localhost:<port>/AppNAme/forms/newName.html

そしてあなたのコントローラーは

@RequestMapping(value = "/newName.html", method = RequestMethod.GET)
public ModelAndView simpleForm(Model model) {
       model.addAttribute(new User());

ModelAndView mv = new ModelAndView("jspViewName");
return mv;
}
于 2012-07-17T09:37:16.433 に答える
0

ViewResolver のプレフィックスにスラッシュがありません。これで 404 が修正されるはずです。試してみてください。

<property name="prefix">
<value>/WEB-INF/jsp/</value>
</property>
于 2012-07-17T15:23:30.780 に答える