Java “jsp”的struts.action.extension不起作用

Java “jsp”的struts.action.extension不起作用,java,struts2,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"> <str

我正在做我的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>
运行perf的应用程序ectlyhttp://localhost:8080/Struts2Application/LoginClass.action 当我卸下,但我想跑进去http://localhost:8080/Struts2Application/LoginClass.jsp. 我看到了很多链接,但没有任何帮助

注意:我使用的是struts 2.3.20

有人告诉我怎么修吗

更新:

在这里查看我的应用程序结构


如果您想运行这个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: 从你的屏幕截图 这里有两个正斜杠-Pages//Home.jsp将其更改为Pages/Home.jsp 现在试试跑步

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

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

并执行。。很抱歉,我无法尝试在此处执行程序..如果执行

我会有更好的主意,我想您可能不理解我的问题。请参阅此struts.action.extension,为Struts2应用程序配置URL后缀。默认后缀为.action,但有时我们可能希望将其更改为.do或其他内容,因此我尝试更改url loginclass.jsp而不是loginclass.actiondefault。我假设index.jsp是您的默认页面,这是错误的。检查我更新的问题。我说假设是因为您以前没有发布web.xml,但是web.xml不需要分析这个问题,我相信你是否尝试过给出或检查它是否有效??即使我尝试过value=html,但没有任何用处。我不知道为什么这不起作用,我正在通过教程和其他方式做。你有Home.jsp文件not Home.jsp。在您的屏幕截图中有html扩展而不是jsp,因此显然它不能与LoginClass.jsp一起使用。通常,在点击欢迎页面后,您需要重定向到操作。现在您正试图点击…/Home.jsp url,该url将被解释为动作点击,但您没有带有Home name的动作。