用<html>标签的我会.通过脚本可以把处理的action值改变.但如果换成<s:form>的不会啊,试了好久都没弄好.请高手指点一下.
下面就是两个表单,第一个通过<html>标签提交的没问题.action可以正常响应.
但是第二个<s:form>表单没弄好.不知道哪出问题了.老是
警告: No configuration found for the specified action: '/login3.jsp' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
我觉得应该是写法有问题.
action 配置<action name="*_Action" class="org.action.LoginRegistAction" method="{1}">
<result name="input">/login3.jsp</result>
<result name="error">/error2.jsp</result>
<result name="success">/welcome3.jsp</result>
</action>
表单一<table width="300" align="center">
<form action="login_Action.action" method="post">
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="登陆"/></td>
<td><input type="submit" value="注册" onClick="regist();"/></td>
</tr>
</form>
</table>
<script>
function regist()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action = "regist_Action.action";
}
</script>
表单二<table>
<!-- theme="simple"为格式控制 -->
<s:form theme="simple">
<tr><td><s:textfield name="username"></s:textfield></td></tr>
<tr><td><s:textfield name="password"></s:textfield></td></tr>
<tr align="right">
<td><s:submit action="login_Action" key="login"></s:submit></td>
<td><s:submit action="regist_Action" key="regist"></s:submit></td>
</tr>
</s:form>
</table>谢谢了~~~
下面就是两个表单,第一个通过<html>标签提交的没问题.action可以正常响应.
但是第二个<s:form>表单没弄好.不知道哪出问题了.老是
警告: No configuration found for the specified action: '/login3.jsp' in namespace: ''. Form action defaulting to 'action' attribute's literal value.
我觉得应该是写法有问题.
action 配置<action name="*_Action" class="org.action.LoginRegistAction" method="{1}">
<result name="input">/login3.jsp</result>
<result name="error">/error2.jsp</result>
<result name="success">/welcome3.jsp</result>
</action>
表单一<table width="300" align="center">
<form action="login_Action.action" method="post">
<tr>
<td>用户名:</td>
<td><input type="text" name="username"/></td>
</tr>
<tr>
<td>密 码:</td>
<td><input type="password" name="password"/></td>
</tr>
<tr>
<td><input type="submit" value="登陆"/></td>
<td><input type="submit" value="注册" onClick="regist();"/></td>
</tr>
</form>
</table>
<script>
function regist()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action = "regist_Action.action";
}
</script>
表单二<table>
<!-- theme="simple"为格式控制 -->
<s:form theme="simple">
<tr><td><s:textfield name="username"></s:textfield></td></tr>
<tr><td><s:textfield name="password"></s:textfield></td></tr>
<tr align="right">
<td><s:submit action="login_Action" key="login"></s:submit></td>
<td><s:submit action="regist_Action" key="regist"></s:submit></td>
</tr>
</s:form>
</table>谢谢了~~~
按功能来说,第一个完全可以满足了.
现在是学习,想试试多种写法,想知道在<s:form>下,可不可以不用js实现一个<s:form>的提交对应二个甚至是多个action?如果可以,请问怎么弄?
^_^
参数了struts 2.1.6下的一个例子.
修改<s:form>如下即可<s:form action="login_Action" theme="simple">
<tr><td><s:textfield key="username"></s:textfield></td></tr>
<tr><td><s:textfield key="password"></s:textfield></td></tr>
<tr align="right">
<td><s:submit key="login"></s:submit></td>
<td><s:submit action="regist_Action" key="regist" nclick="form.onsubmit=null"></s:submit></td>
</tr>
</s:form>
应该是:onclick
^_^
你可以用action!method的形式提交阿
想多少个都可以
1、Struts.xml
在一个Action里指定多个方法,一个叫login,一个叫regist <package name="example" extends="struts-default">
<action name="xxxAction" class="struts2.disp.action.XxxAction" method="login">
<result name="success">/pages/xxxAction.jsp</result>
</action>
<action name="xxxAction" class="struts2.disp.action.XxxAction" method="regist">
<result name="success">/pages/xxxAction.jsp</result>
</action>
</package>
2、XxxAction.java
在该Action中添加两个方法,一个叫login(),一个叫regist() public class XxxAction extends ActionSupport { /**
* serialVersionUID
*/
private static final long serialVersionUID = -329397793534071671L;
/**
* 用户名
*/
private String username;
/**
* 密码
*/
private String password; /**
* 这里处理点击“登录”按钮的业务
* @return
* @throws Exception
*/
public String login() throws Exception {
System.out.println("用户登录");
return SUCCESS;
}
/**
* 这里处理点击“注册按钮的业务”
* @return
* @throws Exception
*/
public String regist() throws Exception {
System.out.println("用户注册");
return SUCCESS;
} /**
* 以下是Getter、Setter方法,略……
*/ public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
}
}
3、JSP页面
这里为submit按钮指定method属性,即分别为Action中的方法login、regist <s:form action="example/xxxAction.action" method="post" >
<table>
<tbody>
<tr>
<td>
<s:textfield name="username" label="用户名" />
</td>
</tr>
<tr>
<td>
<s:password name="password" label="密码" />
</td>
</tr>
<tr>
<td colspan="2">
<s:submit name="submitBtn" value="登录" method="login"/>
<s:submit name="submitBtn" value="注册" method="regist"/>
</td>
</tr>
</tbody>
</table>
</s:form>
<s:submit name="submitBtn" value="登录" method="login"/>
<s:submit name="submitBtn" value="注册" method="regist"/>
这个好.不过login会出错
换成login就好了呀.可惜已经结贴了....
嘿嘿.谢谢~~~