2

ページのリダイレクトに問題があります。

コントローラ:

@Controller
@RequestMapping("/user")
public class UserController {

    @RequestMapping(method = RequestMethod.POST)
    public String processSubmit(@Valid User user,
            BindingResult result) {

        if (result.hasErrors()) {

                    return "userForm";

                    **It will show error - Could not resolve view with name 'userForm' in servlet with name 'dispatcher'**


                    return "redirect:user.htm";

                    **It will redirect page but without error messages**                                                    

        } else {
           **same problem here**
            return "userResult";
        }
    }

    @RequestMapping(method = RequestMethod.GET)
    public ModelAndView initForm(ModelAndView model) {
        User us = new User();
        model.addObject("user", us);
        return model;

    }

}

ディスパッチャーサーブレット:

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass">
        <value>
            org.springframework.web.servlet.view.tiles2.TilesView
        </value>
    </property>
</bean>
<bean id="tilesConfigurer"
    class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
    <property name="definitions">
        <list>
            <value>/WEB-INF/tiles.xml</value>
        </list>
    </property>
</bean>

web.xml:

 <servlet>
        <servlet-name>dispatcher</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

タイルがなくても大丈夫です。しかし、タイルを使用するようにディスパッチャーを構成すると、リダイレクトが機能せず、修正方法がわかりません。

4

1 に答える 1

3

解決:

jsp ファイルではなく、タイルの名前を返す必要があります。ジェロームに感謝します。

于 2012-07-13T12:47:37.807 に答える