0

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

response.sendRedirect("welcome.page");

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

<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,但我无法弄清楚我哪里出错了。

4

2 回答 2

1

ActionClass您放置用户身份验证逻辑的其中之一中,在验证用户操作类后应该返回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>

然后定义将被执行,您需要的页面将显示在图块上..

于 2012-07-03T11:03:46.190 回答
0

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

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

于 2012-07-02T10:15:16.880 回答