代码之家  ›  专栏  ›  技术社区  ›  Joseph Paterson

SimpleFormController的默认窗体视图?

  •  1
  • Joseph Paterson  · 技术社区  · 14 年前

    首先我想说的是,我对Spring(特别是MVC框架)非常陌生,只是想了解一切是如何工作的,所以请对我放轻松。

    <bean name="/login.html" class="test.controller.LoginController">
        <property name="successView" value="list_messages.html" />
        <property name="commandClass" value="test.domain.Login" />
        <property name="commandName" value="login" />
    </bean>
    

    Login 类是一个简单的对象,它包含一个用户名和密码字段(带有适当的getter和setter)。

    这个 LoginController 类现在几乎什么都不做:

    public class LoginController extends SimpleFormController
    {
        @Override
        protected ModelAndView onSubmit(Object command, BindException errors) throws Exception
        {
            return new ModelAndView(new RedirectView(getSuccessView()));
        }
    }
    

    现在我的bean定义文件中有一个视图解析器,如下所示:

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

    为了支持我的登录表单,我在jsp目录中有一个Login.jsp文件。

    提前感谢您的帮助!

    1 回复  |  直到 14 年前
        1
  •  2
  •   Arthur Ronald    14 年前

    当您不指定逻辑视图名称时,Spring依赖于 DefaultRequestToViewNameTranslator ,其中 默认情况下已安装 . 如果你的要求是

    http://127.0.0.1:8080/app/<LOGICAL_NAME_EXTRACTED_BY_VIEW_NAME_TRANSLATOR_GOES_HERE>.html
    

    http://127.0.0.1:8080/app/login.html
    

    ViewNameTranslator提取的逻辑名称为 登录

    /jsp/login.jsp
    

    没别的了