Java struts2动作映射配置
我在gae上试用struts2中的一个简单应用程序,但在提交表单时遇到了问题 struts.xml文件Java struts2动作映射配置,java,struts2,struts2-namespace,Java,Struts2,Struts2 Namespace,我在gae上试用struts2中的一个简单应用程序,但在提交表单时遇到了问题 struts.xml文件 <package name="auth" extends="struts-default" namespace="/auth"> <default-interceptor-ref name="defaultStack"/> <action name="signup" class="signup" method="signup">
<package name="auth" extends="struts-default" namespace="/auth">
<default-interceptor-ref name="defaultStack"/>
<action name="signup" class="signup" method="signup">
<result name="success">/auth/signup.jsp</result>
</action>
<action name="postSignup" class="signup" method="create">
<result name="input">/auth/signup.jsp</result>
</action>
<action name="signupConfirm" class="signup" method="signupConfirm"></action>
<action name="resendCode" class="signup" method="resendCode"/>
</package>
同样从这个页面,如果我再次简单地点击/auth/signup.html,它会给出以下错误-
Problem accessing /auth/signup.html. Reason:
No result defined for action com.tutorial.action.auth.SignUpAction and result input
对于“注册”操作,我不需要在conf中输入,因为我将只显示注册表单。除“postSignup”方法外,我还在每个方法上添加了注释@SkipValidation
。我不熟悉struts2。从struts1迁移。我需要帮助。还有,如何更好地组织struts配置?谢谢
这是jsp
<s:form action="postSignup" cssClass="well" namespace="/auth" method="POST">
<fieldset>
<div class="control-group">
<label class="control-label" for="userName">UserName</label>
<div class="controls">
<s:textfield cssClass="input-large" id="userName" name="userForm.userName"/>
<span class="help-inline">Choose a username</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password1">Password</label>
<div class="controls">
<s:password cssClass="input-large" id="password1" name="userForm.password1"/>
<span class="help-inline">Enter your Password</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password2">Confirm Password</label>
<div class="controls">
<s:password cssClass="input-large" name="userForm.password2" id="password2"/>
<span class="help-inline">Confirm above password</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">Email Address</label>
<div class="controls">
<s:textfield cssClass="input-large" id="email" name="userForm.email"/>
<span class="help-inline">Enter your Email Address</span>
</div>
</div>
<div class="form-actions">
<s:submit name="action" id="action" value="SignUp" cssClass="btn btn-primary"/>
</div>
</fieldset>
</s:form>
用户名
选择一个用户名
密码
输入您的密码
确认密码
确认以上密码
电子邮件地址
输入您的电子邮件地址
如果您再次点击auth页面,仍然看到表单错误,这意味着您正在使用Springbean的默认“singleton”作用域。操作应该是“原型”范围,即根据请求创建
字段错误的问题是不可能解决的,因为除了添加字段错误之外,我看不到任何与此相关的内容。您必须同时包含操作和JSP信息
关于配置文件的“更好的组织”,如果没有进一步的信息,就不可能知道您的意思。如何组织?你的东西怎么了?您喜欢什么?谢谢“范围=原型”成功。我已经包含了jsp。通过组织,我的意思是像struts1一样,我每个动作只有一个形态。我希望通过保持我的uri不变(即“/auth/signup”)来实现同样的目标,并且应该根据一些参数调用不同的方法。或者可能类似于get的“auth/signup”和post的“auth/signup/create”。这可能吗?@Shwetanka您可以使用通配符映射,在本例中,通配符映射可能是可以的。在不了解更多设置的情况下,我猜您使用的是“简单”主题,或者是手动滚动主题,因为默认的“xhtml”主题会让您的HTML变得疯狂。“简单”主题不包含错误消息(因为它很简单)。
<s:form action="postSignup" cssClass="well" namespace="/auth" method="POST">
<fieldset>
<div class="control-group">
<label class="control-label" for="userName">UserName</label>
<div class="controls">
<s:textfield cssClass="input-large" id="userName" name="userForm.userName"/>
<span class="help-inline">Choose a username</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password1">Password</label>
<div class="controls">
<s:password cssClass="input-large" id="password1" name="userForm.password1"/>
<span class="help-inline">Enter your Password</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password2">Confirm Password</label>
<div class="controls">
<s:password cssClass="input-large" name="userForm.password2" id="password2"/>
<span class="help-inline">Confirm above password</span>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">Email Address</label>
<div class="controls">
<s:textfield cssClass="input-large" id="email" name="userForm.email"/>
<span class="help-inline">Enter your Email Address</span>
</div>
</div>
<div class="form-actions">
<s:submit name="action" id="action" value="SignUp" cssClass="btn btn-primary"/>
</div>
</fieldset>
</s:form>