当前位置:编程学习 > JAVA >>

struts2 form动态修改的数据如何传至后台action中

前台form表单
<form action="user/updateUser.action" method="post">
                 <label class="control-label">姓名</label>
                <input type="text" value="<s:property value="user.userName" />"  disabled='disabled'  />
                <label class="control-label">工号</label>
                <input type="text" value="<s:property value="user.userId" />" disabled='disabled'  />
                <label class="control-label">电话</label>
                <input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />
                <input name="user.telephone" type="text" style="display: none;"/> 
                <label class="control-label">E-mail</label>                
                <input type="text" name="user.email" value="<s:property value="user.email" />"  />
                <input value="test" name="test" type="hidden"/>
                <input value="testValue" name="testName" type="hidden"/>
                <div class="submit-btn">
                 <a href="user/updateUser.action" class="btn green">保存</a>
                 <a href="user/userInfo.action" class="btn">取消</a>
                </div>
               </form>
后台用   request.getparameter("telephone")  
得到的结果为空    意思就是前台的数据根本没传到后台去   看了好多  上面的是隐藏域的使用 
在线等高手 struts2  j2ee form action --------------------编程问答-------------------- 急……请大神帮忙
--------------------编程问答-------------------- --------------------编程问答-------------------- 用struts了干嘛还用request.getparameter("telephone") 获取值?使用的是severlet? --------------------编程问答-------------------- 你给text框设置 disabled='disabled' 属性后,就不能获取这个框的value了,你可以在放一个影藏框值和那个 disabled='disabled'的值一样,然后给action里面传的是影藏框的值,这个可以传过去.... --------------------编程问答-------------------- 还有 你那个name为user.phone为啥request时候用的是phone呢。 --------------------编程问答--------------------
引用 4 楼 yang463488415 的回复:
你给text框设置 disabled='disabled' 属性后,就不能获取这个框的value了,你可以在放一个影藏框值和那个 disabled='disabled'的值一样,然后给action里面传的是影藏框的值,这个可以传过去....

求大神指点一下,你说的隐藏框和我的 < input  disabled='disabled' /> 有什么区别?该如何写呢
--------------------编程问答--------------------
引用 6 楼 ANaNawoif 的回复:
Quote: 引用 4 楼 yang463488415 的回复:

你给text框设置 disabled='disabled' 属性后,就不能获取这个框的value了,你可以在放一个影藏框值和那个 disabled='disabled'的值一样,然后给action里面传的是影藏框的值,这个可以传过去....

求大神指点一下,你说的隐藏框和我的 < input  disabled='disabled' /> 有什么区别?该如何写呢
就是你在写一个文本框是隐藏的,然后把设置不能操作的那个文本框的值,传给隐藏框。然后再action中,接收影藏框的值,就好了。注意request那个方法的参数和文本框的name属性要一致。你用struts了怎么还用request.get的那个方法? --------------------编程问答--------------------
引用 7 楼 yang463488415 的回复:
Quote: 引用 6 楼 ANaNawoif 的回复:

Quote: 引用 4 楼 yang463488415 的回复:

就是你在写一个文本框是隐藏的,然后把设置不能操作的那个文本框的值,传给隐藏框。然后再action中,接收影藏框的值,就好了。注意request那个方法的参数和文本框的name属性要一致。你用struts了怎么还用request.get的那个方法?

 <label class="control-label">电话</label>
 <input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />
 <input name="user.telephone" type="text" style="display: none;"/> 
这个就是  电话:首先从数据库取出值  显示在第一个input里  然后改第一个input的值,第二个input作为隐藏域用的,不是这样么? --------------------编程问答-------------------- disabled='disabled' 设置这个属性 是因为其他内容是不能修改的 --------------------编程问答-------------------- 逻辑正确,虽然隐藏了,但是里面要有值。这个值,可以在js中给赋予. --------------------编程问答-------------------- 你js页面有 name为telephone的标签吗?
如果你是想获取<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />的值
那就 request.getparameter("user.telephone")   --------------------编程问答--------------------
引用 11 楼 shejianan 的回复:
你js页面有 name为telephone的标签吗?
如果你是想获取<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />的值
那就 request.getparameter("user.telephone")  

试了  这样request得到的数据为null --------------------编程问答-------------------- 后台setTelephone()的值也为null,就是数据没传到后台 --------------------编程问答--------------------
引用 12 楼 ANaNawoif 的回复:
Quote: 引用 11 楼 shejianan 的回复:

你js页面有 name为telephone的标签吗?
如果你是想获取<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />的值
那就 request.getparameter("user.telephone")  

试了  这样request得到的数据为null

<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  /> 加个id标签 id="user.telephone" --------------------编程问答--------------------

引用 14 楼 shejianan 的回复:
Quote: 引用 12 楼 ANaNawoif 的回复:

Quote: 引用 11 楼 shejianan 的回复:

你js页面有 name为telephone的标签吗?
如果你是想获取<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  />的值
那就 request.getparameter("user.telephone")  

试了  这样request得到的数据为null

<input type="text" name="user.telephone" value="<s:property value="user.telephone" />"  /> 加个id标签 id="user.telephone"

加了id标签  依然是null --------------------编程问答--------------------
引用 10 楼 yang463488415 的回复:
逻辑正确,虽然隐藏了,但是里面要有值。这个值,可以在js中给赋予.

请问这个js该怎么写呢,刚学……别见怪 --------------------编程问答-------------------- struts action类中 user 有get\set 方法么,
用了struts 就可以不用request.getparameter,
只要DO中存在telephone的get/set方法
action 中存在DO对象的get/set方法就可以获取值. --------------------编程问答-------------------- var telephone = document.getElementById("telephone_Id").value;
document.getElementById("隐藏域_Id").value = telephone; --------------------编程问答--------------------
引用 17 楼 u011596629 的回复:
struts action类中 user 有get\set 方法么,
用了struts 就可以不用request.getparameter,
只要DO中存在telephone的get/set方法
action 中存在DO对象的get/set方法就可以获取值.

userAction.java
public Users getUser() {
return user;
}

public void setUser(Users user) {
this.user = user;

}
Users.java
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
都有的……前台修改后的数据传不到后台去 --------------------编程问答--------------------
引用 18 楼 u011596629 的回复:
var telephone = document.getElementById("telephone_Id").value;
document.getElementById("隐藏域_Id").value = telephone;

<script type="text/javascript">
function test(){
var telephone = document.getElementById("telephone").value;
var email = document.getElementById("email").value;

}
我这样写了   是不是还缺什么? --------------------编程问答-------------------- 页面加载完毕时调用 window.onload = test --------------------编程问答-------------------- 不对 你是修改值 是值改变时调用 --------------------编程问答-------------------- 在 <input type="text" name="user.telephone" value="<s:property value="user.telephone" />" 
加个监听失去焦点事件onblur= test(); --------------------编程问答--------------------
引用 22 楼 u011596629 的回复:
不对 你是修改值 是值改变时调用

是的啊  调用的时候要不要传参数?
比如:javascript:test()括号里要写什么吗 --------------------编程问答--------------------
引用 24 楼 ANaNawoif 的回复:
Quote: 引用 22 楼 u011596629 的回复:

不对 你是修改值 是值改变时调用

是的啊  调用的时候要不要传参数?
比如:javascript:test()括号里要写什么吗
那个图片一不小心…… --------------------编程问答-------------------- 有ID就可以获取 页面的值的 你可以alert()的调试 --------------------编程问答--------------------
引用 23 楼 u011596629 的回复:
在 <input type="text" name="user.telephone" value="<s:property value="user.telephone" />" 
加个监听失去焦点事件onblur= test();

还是null…… --------------------编程问答-------------------- 那我也办不了 ... --------------------编程问答-------------------- 每次取出数据放到后台的时候,这个数据就是从后台输出的那个,页面上自己的修改根本没获得值 --------------------编程问答-------------------- S标签 可以换个 EL表达式试试 --------------------编程问答-------------------- 看到了,这个帖子真心很好,我试着操作,结果是可以的!谢谢! --------------------编程问答-------------------- 1.先在action里定义一个user对象(注意一定要初始化),如User user = new User();
2.检查User类里的各种成员变量是否都有get和set方法
3.在action的某个方法中用user.getTelephone()就可以取到值了 --------------------编程问答--------------------
引用 32 楼 w403462630 的回复:
1.先在action里定义一个user对象(注意一定要初始化),如User user = new User();
2.检查User类里的各种成员变量是否都有get和set方法
3.在action的某个方法中用user.getTelephone()就可以取到值了
正解,居然struts2还用request,无语 --------------------编程问答-------------------- 不能改的值用readonly --------------------编程问答-------------------- 不能改的值用readonly 
1.先在action里定义一个user对象(注意一定要初始化),如User user = new User();
 2.检查User类里的各种成员变量是否都有get和set方法
3.在action的某个方法中用user.getTelephone()就可以取到值了 
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,