我最近在学struts 2,但是,有问题。我有action对应的一个表单,但是,表单中,有一个输入框的数据,是我要传到别的action中,但是,我不知道怎么写。
输入页面JSP代码如下:<struts:form action="Login">
<struts:label value="登陆系统"></struts:label>
<struts:textfield name="username" label="账号" id="username"/>
<struts:password name="password" label="密码" />
<struts:radio list="#{'manager':'管理员','teacher':'教师','student':'学生'}" name="type" ></struts:radio>
<struts:submit type="button" value="登陆"></struts:submit>
<struts:reset type="button" value="重置"></struts:reset>
</struts:form>
<a href='<struts:url value="ForgetPassword!execute.action"><struts:param name="username"/></struts:url>'>忘记密码</a>我是要把username这个账户,传到 ForgetPassword 这个action中的execute函数,但是,我不知道怎么写那个url。跪求各路大神帮忙。
里面的函数是这样子。
public String execute()
{
String username = ServletActionContext.getRequest().getParameter("username");
if(username.compareTo("1")==0)
return "resetpassword";
else
return null;
}我希望最好是修改jsp中的语句。
输入页面JSP代码如下:<struts:form action="Login">
<struts:label value="登陆系统"></struts:label>
<struts:textfield name="username" label="账号" id="username"/>
<struts:password name="password" label="密码" />
<struts:radio list="#{'manager':'管理员','teacher':'教师','student':'学生'}" name="type" ></struts:radio>
<struts:submit type="button" value="登陆"></struts:submit>
<struts:reset type="button" value="重置"></struts:reset>
</struts:form>
<a href='<struts:url value="ForgetPassword!execute.action"><struts:param name="username"/></struts:url>'>忘记密码</a>我是要把username这个账户,传到 ForgetPassword 这个action中的execute函数,但是,我不知道怎么写那个url。跪求各路大神帮忙。
里面的函数是这样子。
public String execute()
{
String username = ServletActionContext.getRequest().getParameter("username");
if(username.compareTo("1")==0)
return "resetpassword";
else
return null;
}我希望最好是修改jsp中的语句。
然后在ForgetPassword这个Action中接受数据用就行了啊
不知道我有没有理解对!
<a href='<struts:url value="ForgetPassword!execute.action"><struts:param name="username"/></struts:url>'>忘记密码</a>
<param name="actionName">action2</param>
<param name="username1">${username}</param>
<param name="password1">${password}</param>
<param name="usernameAndPassword1">${usernameAndPassword}</param>
</result>上面的配置方法里面,username1,password1,usernameAndPassword1是Action2里面定义的那些属性,而后面像EL表达式里面的三个值是Action1里面的三个属性值。你可以参考着试试。
不过推荐使用chain..
3楼正解。
struts2的表单传值还是很方便的,楼主看一下你的struts书里关于OGNL部分..就知道怎么传入值了。
<script type="text/javascript">
function checkname()
{
$.post('checkname.action', {username:$("#uname").val()}, function (data) { $("#msg").html(data)});
}
</script> <form action="useraction!regist.action">
Name:<input type="text" name="name" id="uname" onblur="checkname()" ><br>
<input type="text" id="msg">
<input type="submit" value="sub">
</form>
这个就是当你注册时候 填好name以后光标移出这个input以后 会去访问你的checkname.action 并把返回信息输出到id为msg的input中 当然做项目的时候不会用input来显示返回消息 ,
你想要的是把login这个form里面的参数传递到ForgetPassword的action中其实这个也简单 做这个我们也得用js去实现,假如我们要把name这个input的值传道ForgetPassword的action中那么 首先你写一个js方法取到name这个input的值赋给一个变量 当你填完时光标移开调用这个js方法。再去构建你的a连接 把刚才那个变量当做参数穿过去就得了
<a href='<struts:url value="ForgetPassword!execute.action"><struts:param name="username"/></struts:url>'>忘记密码</a>
这里应该是跳转到一个页面,然后再输入用户名(我见过的网站从来就没有您所说的这种功能)
单选框的代码如下:
<struts:radio list="#{'student':'学生','teacher':'教师','manager':'管理员'}" name="type" id="type" ></struts:radio>
我的输入框的数据使用JS获得的。现在,我想根据用户选择的类型,取得type的数据。
下面是我的JS的函数代码。但是,我一直不能获得type的数据,或者,获得的数据,永远是student,我不知道怎么修改下面的函数,跪求各路大神帮忙。
function forgetpassword()
{
var a = document.getElementById("username").value;
if(a=="" || a==null)
{
alert("用户名不能为空");
}
else
{
var b = document.getElementById("type");
for(i=0;i<b.length;i++){if(b[i].checked){break}};
if(i==b.length)
{
alert("用户类型不能为空");
}
else
{
window.location.href="ForgetPassword!execute.action?username="+document.getElementById("username").value + "&type=" + document.getElementById("type")[i].value;
}
}
}
但是,我不止要选中的radio作为链接的参数,传到ForgetPasswordAction里面,还要选中的radio能传到 LoginAction 里面,作为一个表单的值。ForgetPasswordAction里面有这句话:String type = ServletActionContext.getRequest().getParameter("type");但是,我一直不知道怎么弄。
就可以取到,取到的值,就是你选中的,你试了吗?