Java 为什么在Struts 2应用程序中没有为操作定义结果

Java 为什么在Struts 2应用程序中没有为操作定义结果,java,jsp,validation,struts2,Java,Jsp,Validation,Struts2,目前我对struts 2还不熟悉,但我知道,当我试图在struts中执行验证时,我在struts 2示例中遇到了问题,这是一个自定义验证示例。所有代码如下: index.jsp <%-- Document : index Created on : Jan 9, 2014, 10:58:52 AM Author : manoj.sharma --%> <%@ taglib uri="/struts-tags" prefix="s" %&

目前我对struts 2还不熟悉,但我知道,当我试图在struts中执行验证时,我在struts 2示例中遇到了问题,这是一个自定义验证示例。所有代码如下:

index.jsp

  <%-- 
    Document   : index
    Created on : Jan 9, 2014, 10:58:52 AM
    Author     : manoj.sharma
--%>

<%@ taglib uri="/struts-tags" prefix="s" %>  
<s:form action="register">  
    <s:textfield name="name" label="Name"></s:textfield>  
    <s:password name="password" label="Password"></s:password>  
    <s:submit value="register"></s:submit>  
</s:form>  
谢谢所有能帮助我的人…

试试看

public class RegisterAction extends ActionSupport{  
    private String name,password;
分成

public class RegisterAction extends ActionSupport{  
    private String name;
    private String password;
我想这可能行得通。 更改您的
struts.xml
code

<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="input">/index.jsp</result>
        <result name="success">/welcome.jsp</result>
    </action>  
</package>

/index.jsp
/welcome.jsp


/welcome.jsp
/index.jsp

只要改变结果的顺序。。首先定义
success
,然后
input

更改此设置-

<action name="register" class="com.org.my.action.RegisterAction">


在Struts.xml文件中

谢谢查看您的web.xml。 您的web.xml具有以下筛选器

<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <listener>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

支柱2
org.apache.struts2.dispatcher.FilterDispatcher
支柱2
/*

我遇到了与解决此错误相同的问题:

您需要在index.jsp文件中做一个更改。在表单中更改操作。 (逐个尝试两个表单行)


我希望它能解决您的问题。

好吧,我想您知道struts是如何工作的,您已经做了所有正确的事情,但仍然无法找出您的项目有什么问题。 您的操作类名称提到正确,方法名称正确。结果页面设置正确,但仍然失败。我有件事你应该检查一下。 例如,如果您从web页面和action类中获取name和age,则将name设置为string,age设置为int,作为同一类的成员变量或以模型驱动的方式。在用于测试的网页中,您必须在姓名和年龄中输入字符。在这种情况下,struts将检查action类,该类使用string作为名称和年龄,但找不到它。因为您创建的操作类的名称为string,年龄为int。因此会引发404错误

或者你可以试试这个

我发现更改输入有助于解决此问题。我从一开始就对web应用程序进行了适当的刷新,它似乎解决了这个问题

改变

<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="input">/index.jsp</result>
        <result name="success">/welcome.jsp</result>
    </action>  
</package>
</struts>

/index.jsp
/welcome.jsp


/index.jsp
/welcome.jsp

请有人帮帮我……您重新启动了web服务器吗?我已经重新启动了服务器,因为我正在使用netbeans7.4 IDE。但我还是犯了同样的错误。我还在等待,请有人帮帮我。有人知道这个问题吗?发布部署工件的
WEB-INF/lib
的内容。结果的顺序无关紧要。我没有在本地系统中尝试过。但我从[Struts2验证文档]()中获取了参考资料。。如果我错了,请纠正我检查返回的段落
处理输入
,这只是一个建议。没有问题任何其他建议请让我知道,这样我的演示就可以工作了。我也改变了上面描述的结果顺序,但仍然存在相同的问题。并且还将变量声明为私有字符串名称;在下一行私有字符串密码;但是仍然存在同样的问题。WEB-INF/lib的内容:Struts2 Core 2.3.15-xwork-Core-2.3.15.3.jar Struts2 Core 2.3.15-Struts2-Core-2.3.15-Struts2-convention-plugin2.3.15.3.jar Struts2 Core 2.3.15-ognl-3.0.6.jar Struts2 Core 2.3.15-javaassist-3.11.0.GA.jar Struts2 Core 2.3.15-marker-freets2.19.2.3.jar-commons-lang3-3.1.jar Struts2 Core 2.3.15-commons-io-2.0.1.jar Struts2 Core 2.3.15-commons-fileupload-1.3.jar Struts2 Core 2.3.15-asm-tree-3.3.jar Struts2 Core 2.3.15-asm-commons-3.3.jar Struts2 Core 2.3.15-asm-3.3.3.jarI通过将操作名从regi更改为regi和index.jsp文件中的操作名,解决了我自己的问题从注册到注册。我认为按钮的名称和操作名称是相同的,因为出现了这个问题。
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="input">/index.jsp</result>
        <result name="success">/welcome.jsp</result>
    </action>  
</package>
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="success">/welcome.jsp</result>
        <result name="input">/index.jsp</result>
    </action>  
</package>
<action name="register" class="com.org.my.action.RegisterAction">
 <action name="register" class="com.org.my.action.RegisterAction" method="execute">
<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
    </filter>
    <listener>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
<%@ taglib uri="/struts-tags" prefix="s" %>  
    <s:form action="RegisterAction.action">  or  <s:form action="register.action"> 
        <s:textfield name="name" label="Name"></s:textfield>  
        <s:password name="password" label="Password"></s:password>  
        <s:submit value="register"></s:submit>  
    </s:form>  
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="input">/index.jsp</result>
        <result name="success">/welcome.jsp</result>
    </action>  
</package>
</struts>
<struts>
<!-- Configuration for the default package. -->
<package name="default" namespace="/" extends="struts-default">
    <action name="register" class="com.org.my.action.RegisterAction">  
        <result name="input">/index.jsp</result>
        <result name="success">/welcome.jsp</result>
    </action>  
</package>
</struts>