【问题标题】:spring 3.0 + tiles 2.1 problem in redirectionspring 3.0 + tiles 2.1 重定向问题
【发布时间】:2011-05-20 21:37:23
【问题描述】:

我在尝试启动它时遇到了问题。在 index.jsp (应用程序开始的地方)我有...

<jsp:forward page="hello.do"></jsp:forward>

然后,我在 web.xml 中定义了 servlet 调度程序:

<!-- Servlet para levantar el dispatcher servlet de spring MVC -->
<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>*.do</url-pattern>
</servlet-mapping>

所以,所有以 .do 结尾的东西,都应该由控制器来处理。这样可行 。定义的控制器是:

@Controller
@RequestMapping("/hello")
public class HelloWorldController {
    @RequestMapping(method=RequestMethod.GET)
    public String procesar(HttpServletRequest request,ModelMap modelo){
        System.out.println("todo jodidamente correcto");
        String mensaje = "Hola, perras";

        modelo.addAttribute("message",mensaje);

        return "hello";
    }
}

我可以看到该消息,但是当它到达 --return "hello" -- 时它失败了,我仍然有同样的异常:

javax.servlet.ServletException:无法在名称为“dispatcher”的 servlet 中解析名称为“hello”的视图
org.springframework.web.servlet.DispatcherServlet。渲染(DispatcherServlet.java:1013)
org.springframework.web.servlet.DispatcherServlet。 doDispatch(DispatcherServlet.java:815)
org.springframework.web.servlet.DispatcherServlet。 doService(DispatcherServlet.java:717)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.d oGet(FrameworkServlet.java:549)
javax.servlet.http.HttpServlet.service(HttpServlet .java:617)
javax.servlet.http.HttpServlet.service(HttpServlet .java:717)

我的瓷砖定义是:

<tiles-definitions>
    <definition name="topfisio.layout" template="/layouts/three-layer.jsp">
        <put-attribute name="title" value="Top fisio" />
        <put-attribute name="header" value="/jsp/header.jsp" />
        <put-attribute name="footer" value="/jsp/footer.jsp" />
    </definition>


    <definition name="*" extends="topfisio.layout">
        <put-attribute name="title" value="{1}" />
        <put-attribute name="content" value="/jsp/{1}.jsp"/>
    </definition>
</tiles-definitions>

我的文件结构是:

index.jsp

网络信息
WEB-INF——调度程序-servlet.xml
WEB-INF——tiles-def.xml
WEB-INF——web.xml
布局
布局——三层.jsp
jsp
jsp——页脚.jsp
jsp——header.jsp
jsp——你好.jsp

我可能对瓦片定义有疑问,但我仍然找不到它

【问题讨论】:

    标签: spring-mvc tiles


    【解决方案1】:

    你必须在你的 dispatcher-servlet.xml 中配置瓦片的解析器,所以当你在控制器中返回一个字符串时,Spring 会检查你所有的解析器,试图寻找合适的解析器:

    <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
        <property name="definitions">
            <list>
                <value>/WEB-INF/tiles-def.xml</value>
            </list>
        </property>
    </bean>
    
    <bean id="tilesResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
         <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/>
         <!-- In case you have more than one resolver you can set the order here -->
         <!-- The order 0 will be the first one in the order -->
         <property name="order" value="1"/>              
    

    更多信息here

    【讨论】:

    • 谢谢。我已经解决了我的问题,但还是谢谢
    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多