Java Struts 2动作类不工作
Java Struts 2动作类不工作,java,jakarta-ee,struts2,Java,Jakarta Ee,Struts2,我正在使用struts2开发web应用程序。 我已经包含了struts2所需的JAR,但是当它要调用struts操作类时,它抛出了404错误。 控制台上没有错误,浏览器也没有显示.action扩展,struts.xml调用action类时显示该扩展。 我使用的是jdk1.6和struts2.0 我是否遗漏了负责这一切的人。 在jsp中,我只是从调用函数 这是我的struts.xml和web.xml struts.xml <?xml version="1.0" encoding="UTF-
我正在使用struts2开发web应用程序。
我已经包含了struts2所需的JAR,但是当它要调用struts操作类时,它抛出了404错误。
控制台上没有错误,浏览器也没有显示.action扩展,struts.xml调用action类时显示该扩展。
我使用的是
jdk1.6
和struts2.0
我是否遗漏了负责这一切的人。
在jsp中,我只是从
调用函数
这是我的struts.xml和web.xml
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!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.multipart.maxSize" value="6000000000" />
<package name="default" namespace="/jsp" extends="struts-default">
<action name="Mergexmlaction" class="com.hm.merge.mergeaction.Mergexmlaction">
<result name="success" >/jsp/Result.jsp</result>
<result name="error" >/jsp/Browse_multiplexmlfiles.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">600000000</param>
</interceptor-ref>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="xml_file_merging" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>xml_file_merging</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>jsp/Browse_multiplexmlfiles.jsp</welcome-file>
</welcome-file-list>
</web-app>
/jsp/Result.jsp
/jsp/Browse_multiplexmlfiles.jsp
600000000
web.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!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.multipart.maxSize" value="6000000000" />
<package name="default" namespace="/jsp" extends="struts-default">
<action name="Mergexmlaction" class="com.hm.merge.mergeaction.Mergexmlaction">
<result name="success" >/jsp/Result.jsp</result>
<result name="error" >/jsp/Browse_multiplexmlfiles.jsp</result>
<interceptor-ref name="fileUpload">
<param name="maximumSize">600000000</param>
</interceptor-ref>
</action>
</package>
</struts>
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="xml_file_merging" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>xml_file_merging</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>jsp/Browse_multiplexmlfiles.jsp</welcome-file>
</welcome-file-list>
</web-app>
xml\u文件\u合并
支柱2
org.apache.struts2.dispatcher.FilterDispatcher
支柱2
/*
jsp/Browse_multiplexmlfiles.jsp
错误404是错误链接。意味着你只是在调用一个不存在的链接。检查struts配置文件中的映射,确保使用正确的url。错误404是错误链接。意味着你只是在调用一个不存在的链接。检查struts配置文件中的映射,确保使用正确的url。包元素的名称空间属性是可选的,如果不存在,则假定默认值“/”。如果名称空间属性具有非默认值,则必须将名称空间添加到调用包中的操作的URI中
例如,在具有默认命名空间的包中调用操作的URI如下:
/上下文/操作名
要在具有非默认命名空间的包中调用操作,需要以下URI:
/context/namespace/actionName包元素的namespace属性是可选的,如果不存在,则假定默认值“/”。如果名称空间属性具有非默认值,则必须将名称空间添加到调用包中的操作的URI中 例如,在具有默认命名空间的包中调用操作的URI如下: /上下文/操作名 要在具有非默认命名空间的包中调用操作,需要以下URI:
/context/namespace/actionName存在一些问题
<package name="default" namespace="/jsp" extends="struts-default">
3)我建议将JSP页面置于WEB-INF
下,以避免客户端直接访问
<interceptor-ref name="fileUpload">
4)声明任何拦截器后,必须声明所有拦截器。此操作仅运行一个拦截器。这是可能的,但这几乎从来都不是正确的做法
<welcome-file>jsp/Browse_multiplexmlfiles.jsp</welcome-file>
jsp/Browse\u multiplexmlfiles.jsp
5)这是最终的问题,取决于您访问应用程序的方式。您将欢迎文件显示为一个JSP页面,该页面可能使用S2标记。这是行不通的:标记取决于它们是一个完整的S2请求、一个值堆栈等等
对S2应用程序的所有访问都应该通过S2操作进行,而不是通过JSP。如果您查看直接访问的JSP的呈现HTML,您将不会看到呈现的名称空间和操作扩展。存在一些问题
<package name="default" namespace="/jsp" extends="struts-default">
3)我建议将JSP页面置于WEB-INF
下,以避免客户端直接访问
<interceptor-ref name="fileUpload">
4)声明任何拦截器后,必须声明所有拦截器。此操作仅运行一个拦截器。这是可能的,但这几乎从来都不是正确的做法
<welcome-file>jsp/Browse_multiplexmlfiles.jsp</welcome-file>
jsp/Browse\u multiplexmlfiles.jsp
5)这是最终的问题,取决于您访问应用程序的方式。您将欢迎文件显示为一个JSP页面,该页面可能使用S2标记。这是行不通的:标记取决于它们是一个完整的S2请求、一个值堆栈等等
对S2应用程序的所有访问都应该通过S2操作进行,而不是通过JSP。如果您查看直接访问的JSP的呈现HTML,您将既看不到呈现的名称空间也看不到呈现的操作扩展。web.xml呢?您在那里设置了struts dispatcher吗?需要很多信息吗?关于你的web.xml,当你得到这个信息时,你会点击什么URL,没有它就无法回答。我已经添加了我的struts和web.xml文件….
在jsp中,我只是从s:formits调用函数,只给出404或任何其他错误。当您启动应用程序或点击任何特定URL时,是否会出现错误?这就是问题所在。。。它在浏览器上的控制台JU上没有给出任何错误。当我启动应用程序时,第一页显示得非常完美,但当我按照说明提交请求时。。然后我得到了这个错误…web.xml呢?您在那里设置了struts dispatcher吗?需要很多信息吗?关于你的web.xml,当你得到这个信息时,你会点击什么URL,没有它就无法回答。我已经添加了我的struts和web.xml文件….
在jsp中,我只是从s:formits调用函数,只给出404或任何其他错误。当您启动应用程序或点击任何特定URL时,是否会出现错误?这就是问题所在。。。它在浏览器上的控制台JU上没有给出任何错误。当我启动应用程序时,第一页显示得非常完美,但当我按照说明提交请求时。。然后我得到了这个错误…谢谢回复Dave,但我的欢迎页面运行良好。。问题是当我调用任何操作时,它没有运行,甚至没有显示任何操作扩展。我犯了一个愚蠢的错误。。。。我将struts.xml命名为struts.xml。。。。现在它的工作很好,感谢所有我从你们的答案中学到了这么多,并将提醒未来这些事情。。。谢谢你的语气…:)谢谢你的回复Dave,但我的欢迎页面是ru