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

struts2 select 取值问题

现在前台显示正常,可是一提交表单 就出错 比如我select 标签的 name属性写的是categoryId
就报找不到 setCategoryId()这个方法

action:  
private int categoryId; 有get set 
private List<Category> allCategory; 有get set 从数据库里读出的每个记录放到Category里
再把每个Category放到list里,然后传到页面

jsp:
<s:select list="allCategory" name="categroyId" listKey="categoryId" listValue="categoryName"></s:select>

我把action里 categoryId 打出来 我看是0 那就是取不到值
而且我测试了一个最简单的
<select name="tt">
   <option value="1">足球</option>
    <option value="2">篮球</option>
 </select>
我从action 里 定义个变量 tt 也是取不到值

哪位大哥帮帮小弟呀,困扰我好几天了都。。。。。 struts select  --------------------编程问答-------------------- 楼主的描述好混乱啊。。。。
用迭代吧!!!把数据迭代出来。。。 --------------------编程问答-------------------- jsp代码:
<select name="tt">
   <option value="1">足球</option>
    <option value="2">篮球</option>
 </select>
java代码:
action里面
private int tt; 再加上tt的get()、set()方法,就可以在后台接收到下拉列表的选择值。 --------------------编程问答--------------------
引用 2 楼 dw_java08 的回复:
jsp代码:
<select name="tt">
   <option value="1">足球</option>
    <option value="2">篮球</option>
 </select>
java代码:
action里面
private int tt; 再加上tt的get()、set()方法,就可以在后台接收到下拉列表的选择值。
    ……

我就是这么做的 可还是取不到值。 --------------------编程问答-------------------- getXXX方法的XXX要与你的属性同名 --------------------编程问答-------------------- allCategory 这个集合里你取到值了没有?如果可以用iterotor得到值 --------------------编程问答--------------------
引用 3 楼 magiclaugh3 的回复:
引用 2 楼 dw_java08 的回复:jsp代码:
<select name="tt">
   <option value="1">足球</option>
    <option value="2">篮球</option>
 </select>
java代码:
action里面
private int tt; 再加上tt的get()、set()方法,就可……


第一、你的select元素是否放在form表单中、
第二、在Action中调试一下、看看request是否为null、如果为null你是怎么都取不到值的

如果满足以上两点还取不到值、那么......祈祷吧哥们! --------------------编程问答--------------------
引用 6 楼 hzw2312 的回复:
引用 3 楼 magiclaugh3 的回复:引用 2 楼 dw_java08 的回复:jsp代码:
<select name="tt">
   <option value="1">足球</option>
    <option value="2">篮球</option>
 </select>
java代码:
action里面
private int tt;……


额、还有就是form表单的属性method设置为method="post" --------------------编程问答-------------------- 错误信息贴上... --------------------编程问答-------------------- 你的action中定义一个private Category category;
再写
<s:select list="allCategory" name="category.categroyId" listKey="categoryId" listValue="categoryName"></s:select>
试试 --------------------编程问答-------------------- 你真能跳到后台,变量都对了? 应该是个很小的错误  手误了 没注意  重写一遍估计就好了 --------------------编程问答--------------------
引用 楼主 magiclaugh3 的回复:
现在前台显示正常,可是一提交表单 就出错 比如我select 标签的 name属性写的是categoryId
就报找不到 setCategoryId()这个方法

action:  
private int categoryId; 有get set 
private List<Category> allCategory; 有get set 从数据库里读出的每个记……


1.s:select这个标签是可以使用的。确认在jsp中添加了<%@ taglib uri="/struts-tags" prefix="s"%>;
2.如果数据需要传道后台,需要放到form或者使用ajax获取。确认你的标签在form中,可以使用浏览器的debug功能查看网络,看看你的数据是否被提交了。
3.如果提交了后台还不到,那看看名字是否一致,get,set方法,数据类型是否一致吧。 --------------------编程问答-------------------- 现在能取值了 又发现了一问题,不管是文本框 下拉框,我取值时输入的值最少是1位以上,要不然就取不到,之前select取不到也是因为value的值 都是 1,2,3 ,后来改成100,101,102 就能取到值了,而且别的也是,我写了一个用户登录测试了一下也是,用户名 比如写 t 就不行,写tt就行,这是怎么回事呀??? --------------------编程问答-------------------- 竟有如此神奇的事?
不过有点不大明白的,楼主用一个list的allCategory属性是要动态显示下拉菜单的值麽?
    如果不是的话,就没有必要用list了。
select可以只用一个基本的数据类型就可以的了! --------------------编程问答--------------------
引用 12 楼 magiclaugh3 的回复:
现在能取值了 又发现了一问题,不管是文本框 下拉框,我取值时输入的值最少是1位以上,要不然就取不到,之前select取不到也是因为value的值 都是 1,2,3 ,后来改成100,101,102 就能取到值了,而且别的也是,我写了一个用户登录测试了一下也是,用户名 比如写 t 就不行,写tt就行,这是怎么回事呀???

这个太神奇了,是不是什么地方限定了长度的
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,