struts.action.extension to" jsp"不工作

时间:2015-03-03 05:59:14

标签: java struts2

我正在使用我的struts2应用程序,所以我尝试将Struts常量 struts.action.extension 包含到 jsp 扩展名中,但是显示页面找不到错误。这是代码我试过的,

struts.xml:

<!DOCTYPE struts PUBLIC
   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
   "http://struts.apache.org/dtds/struts-2.0.dtd">
   <struts>
   <!-- <constant name="struts.devMode" value="true"></constant>-->
   <constant name="struts.action.extension" value="jsp"/>  
   <package name="default" namespace="/" extends="struts-default"  >
   <action name="LoginClass" class="com.struts2.LoginCheckingClass" method="execute">
   <result name="success">/LoginSuccessPage.jsp</result>
   <result name="input">/Home.jsp</result> 
   </action>   
   </package>  
   </struts>

Home.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<s:form action="LoginClass" method="post">

<s:textfield name="Uname" label="User Name" />

<s:textfield name="Pwd" label="Password" />

<s:submit Value="Login" />

</s:form>

</body>
</html>

Web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 version="2.5">
  <display-name>Struts2Application</display-name>
  <welcome-file-list>
    <welcome-file>home.jsp</welcome-file>
  </welcome-file-list>
  <filter>
  <filter-name>Struts2</filter-name>
  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
  </filter-class>
  </filter>
  <filter-mapping>
  <filter-name>Struts2</filter-name>
  <url-pattern>/*</url-pattern>
  </filter-mapping>  
</web-app>

当我删除http://localhost:8080/Struts2Application/LoginClass.action但我希望在<constant name="struts.action.extension" value="jsp"/>中运行时,应用程序运行完美(http://localhost:8080/Struts2Application/LoginClass.jsp)。我见过许多链接但没有帮助我。

注意:我使用struts 2.3.20

有人告诉我如何解决这个问题?

更新:

在这里查看我的申请结构。

enter image description here

1 个答案:

答案 0 :(得分:0)

如果你想运行这个localhost:8080 / App / LoginClass.jsp(我假设index.jsp是你的默认页面),你的web.xml文件将如下所示

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

然后包含从index.jsp到App / LoginClass.jsp的重定向链接。

否则,请按照

进行操作
<welcome-file-list>
    <welcome-file>App/LoginClass.jsp</welcome-file>
</welcome-file-list>

以上更改必须通过保持

来完成
<constant name="struts.devMode" value="true">

我不确定这是否与您的问题相关,

顺便说一下,为什么要使用 struts.action.extension ?这个要求是什么?

编辑:

你可以试试这个...... 将结果页面保存在这样的文件夹中,

<result name="success">tempFolder/LoginSuccessPage.jsp</result> 
<result name="input">tempFolder/Home.jsp</result> 

然后使用

<constant name="struts.action.extension" value="jsp"/> 

并执行程序......结果即将到来?

我认为如果我们使用“struts.action.extension”,对于“根目录”中出现的结果,此页面未找到... 请仔细测试我的上述情况,并告诉我它是否正在工作

编辑2:
从你的屏幕截图
这里有2个正斜杠 - Pages // Home.jsp 将其更改为 Pages / Home.jsp
现在尝试运行

编辑3:
尝试将此从Home.jsp..append .action传递给现有操作

<s:form action="LoginClass.action" method="post"> 


并执行..对不起,我无法尝试在这里执行程序..如果我执行

,我会有更好的主意