怎么把每一页中都含有checkbox,但是提交是把所有的选中checkbox中的数据全部提交?
解决方案 »
- javamail 如何获取内嵌图片的cid
- java中怎样能使所有的URL中不出现工程名
- ssh整合出现了问题,求助!!!!
- Java循环异常后有重试函数吗?
- 前台用jsp页面提交用户名和密码,用的是IBATIS框架,后台进行提交信息的校验,校验成功后将用户名保存在session中,需要代码。 急用!!!!! 高分赠与!!!!!!
- swing里的button,单击打开jsp
- 有关J2EE培训的问题
- 一个奇怪的问题,期待解决~
- 关于hibernate4的 load()方法
- 用Java开发一个类似QQ的多人网络聊天系统for Linux,各位给提供个类似例程。
- hibernate
- flex 中如何取得DataGrid的某一列的数据并传到titleWindow中编辑
struts 2话在action里面设置set<String> checkbox的名字,提供get and set
就行了 但是jsp中的 checkbox的名字和action中set的名字要一致
最后直接传这个list,你试下看可以吗
<html> <form method=get action=2.jsp> what's your name<input type=text name=username> <input type=submit value=submit> </form> </html>
4. 2.jsp <html> <form method=post action="3.jsp?pass=11"> <% String name=request.getParameter("username"); session.setAttribute("username",name); %> Your name is:<%=request.getParameter("username")%> <br>what's your hobby<input type=text name=hobby> <input type=submit value=submit> </form> </html>
5. 3.jsp <html>
your name is:<%=session.getAttribute("username")%> <br> your hobby is:<%=request.getParameter("hobby")%> <br> your password is:<%=request.getParameter("pass")%> <br>
</form>
</html>
要是点击下一页的时候你提交到action里了的话
那么页面必将被刷新的
所以你可以使用静态变量来保存这些信息思路给你了
其他的就该是你自己的事情了
第一页: 我选了3个checkbox.我按了下一页
第二页: 我又选了1个checkbox,然后直接跳转到第n页..
第n页: 我选了2个checkbox.
而且我回到第二页时,我已选好的必须也要选上..等等...以前我是这样做的:使用dwr,每页的每个checkbox都有单击事件吧? 单击的时候把当前选中的值传向后台.(dwr).
后台可以使用list 保存,然后做相应的判断,如果是取消选择则删除list中的元素.
然后将这个list保存到session中,你也可以选择将该list申明为全局的。那样不用保存到session也可以.
然后下一页..同上...如果回上一页.或则下一页.取存放值的list,进行比较,如果list中存在,则checkbox选中...!当提交的时候,到相应的list中把所有选择好的值获取到,然后清空list希望对你有所帮助...
后台可以使用list 保存,然后做相应的判断,如果是取消选择则删除list中的元素.
然后将这个list保存到session中,你也可以选择将该list申明为全局的。那样不用保存到session也可以.
然后下一页..同上...如果回上一页.或则下一页.取存放值的list,进行比较,如果list中存在,则checkbox选中...!当提交的时候,到相应的list中把所有选择好的值获取到,然后清空listAloysHeung 很不错的方法.可以解决问题一般处理分布这样的问题确实麻烦,最好的办法是不分页。
方法是:影藏标记,改隐藏标记就记录一个字符串,记录了所有选中单元的拼串结构,如:123,345,,在跳转过程中,将隐藏标记一起提交,下一个页面隐藏标记继续输出,然后选中的继续在后面追加,一般是同一个页面,只是参数不同而已,所以,推荐使用struts的form填充,然后隐藏标记就很方便使用了,最后提交时提交上去即可。2、翻页采用异步交互(如AJAX)后提取数据,获取数据,然后直接通过JS修改表格值(不需要刷新界面,很多网站也是这样做的):
此时就更加简单了,因为不存在页面跳转,此时,就只需要哪一个JS全局变量记录下来就可以了,提交前放入一个隐藏标记中,提交到后台就行了。3、翻页若使用页面刷新,但是存在父子页面,如:iframe,此时,解决办法同上,将数据交给父亲页面,子页面刷新,选中的都交给父亲页面的一个隐藏标记(通过window.parent.document可以得到父页面的元素调用)。可能你会问,如果我将某一个不选中怎么办,首先我只会在提交和翻页时,将数据交给页面的一个隐藏标记,这样减少我们拼串的操作;但是如果你需要翻页再翻回来的时候,它再做操作,或者将以前选中的挑掉怎么办?这个很简单,比如现在选中了一个"123,234,543,445,",记录在全局变量allIds中,此时它要将234这个挑掉怎么弄,最简单的办法:allIds = allIds.replace("234,","");就可以了这部分完全是客户端的操作,和服务器没有任何关系,将数据组织完后,一起提交到服务器端,将数据split开就OK,其实很多时候服务器不需要扯开直接用,要的就是拼好的数据,至少我是这样,具体问题具体分析吧。不过怎么说呢,仅仅参考,这个办法需要琢磨清楚才比较好用,呵呵
取出的数据怎么和页面中的checkbox相比较呀?
我的代码:
<s:iterator id="list" value="zfztxxPage.result" status="status" >
<tr align="center" height="25" class="lianjie">
<td class="right">
<s:set name="flag" value="false" scope="page" ></s:set>
<s:set name="bodids" value="#list.enforcementBodyId" scope="page"></s:set>
<s:iterator value="checks" id="ch" >
<s:if test="bodids==ch">
<s:set value="true" name="flag"></s:set>
<s:checkbox id="enforcementBodyIds" name="enforcementBodyIds" value="true" fieldValue="%{enforcementBodyId}" />
</s:if>
</s:iterator>
<s:if test="flag==flase">
<s:checkbox id="enforcementBodyIds" name="enforcementBodyIds" value="false" fieldValue="%{enforcementBodyId}" />
</s:if>
</td>
<td align="left" class="right"> <s:property value="enforcementBodyName"/> </td>
<td class="right"><s:property value="legalRepresentative" /></td>
<td class="right" align="left"> <s:property value="address" /></td>
<td class="right"><s:property value="enforcementCategory"/></td>
<td class="right"><s:property value="enforcementArea" /></td>
</tr>
</s:iterator>
但是其最后无法判断