瓷砖不工作?

时间:2012-07-02 10:09:01

标签: struts

我创建了一个登录页面,通过atuthentication类对用户进行身份验证。经过身份验证后,我使用以下语句将重定向到JSP页面。

response.sendRedirect("welcome.page");

这应该查找映射到实际jsp页面的tiles-defs.xml。我提供了以下内容

<definition name="main.layout" path="/mainLayout.jsp">
<put name="header" value="/header.jsp"/>
<put name="info" value="/info.jsp"/>
<put name="menu" value="/menu.jsp"/>
<put name="body" value=""/>
<put name="footer" value="/footer.jsp" />
</definition>

<definition name="welcome.page" extends="main.layout">
<put name="title" value="Welcome"/>
<put name="body" value="/welcome.jsp"/>
</definition>

我创建了mainLayout.jspwelcome.jsp页面。现在,当用户通过身份验证后,必须重定向到welcome.jsp。但我得到“无法找到网页”错误。我猜映射不正确,这就是为什么它找不到welcome.jsp,但我无法弄清楚我哪里出错了。

3 个答案:

答案 0 :(得分:1)

在您ActionClass之一的用户身份验证逻辑na中, 在验证用户后,Action类应该返回return mapping.findForward(SUCCESS); na,然后控件焦点在struts-config.xml文件中 你应该放置这样的代码

 <action input="/index.jsp" name="loginForm" path="/login" scope="session" type="gg.locinAction">
        <forward name="success" path="welcome.page"/>
 </action>

然后将注意力集中在tiles-defs.xml welcome.page tiles-defs.xml定义<definition name="welcome.page" extends="main.layout"> <put name="title" value="Welcome"/> <put name="body" value="/welcome.jsp"/> </definition> 文件中,您应该像这样编写定义

{{1}}

然后将执行定义,并且您的所需页面将显示在图块上。

答案 1 :(得分:0)

您无法重定向到切片定义。重定向包括向浏览器发送响应,告诉他:“请转到以下URL”。切片定义不是URL。

您可以重定向到JSP,然后执行JSP。但这是不好的做法,因为在设计合理的MVC应用程序中,所有请求都应该通过控制器。您可以重定向到操作的URL,这是您应该执行的操作:重定向到welcome.do URL(假设welcome.do是Struts欢迎操作的URL)

答案 2 :(得分:0)

您可以查看此链接。

simple-struts-program-using-tiles

我希望这会对你有所帮助。