如何提交jsp页面复选框中复选框的所有值到servelt

博客分类:
第一种方法:获取结果String类型
在 Action 中获得的是一个 String 型数据,每一个被选中的 checkbox 的 value 被拼接在一起,每个值之间以逗号隔开(,)。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
&input type="checkbox" name="chkName" value="abc"&
&input type="checkbox" name="chkName" value="def"&
&input type="checkbox" name="chkName" value="ghi"&
Action 中的代码:
private String chkN
//getter()、setter() 方法一定要有
public String getChkName(){
return chkN
public void setChkName(String chkName){
this.chkName=chkN
public String execute() throws Exception{
String[] chkValues = this.getChkName().split(", ");
最后,chValues 数组就是被选中的 checkbox 中的 value。
有一点需要注意:chkName 中的每一个值都是这种形式:[value1, value2, value3, ...] 注意,每个逗号后面都有一个空格,所以是这样的: split(",空格")
别落下逗号后面的空格。
第二种方法:获取结果为String[]数组类型
在 Action 中获得的是一个 String[]数组型数据,每一个被选中的 checkbox 的 value是数组的一个值。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
&input type="checkbox" name="chkName" value="abc"&
&input type="checkbox" name="chkName" value="def"&
&input type="checkbox" name="chkName" value="ghi"&
Action 中的代码:
private String[] chkN
//getter()、setter() 方法一定要有
public String[] getChkName(){
return chkN
public void setChkName(String[] chkName){
this.chkName=chkN
public String execute() throws Exception{
for(int i=0;i&this.getChkName().i++){
String chkNameValue=this.getChkName()[i];
第三种方法:获取结果为List类型
在 Action 中获得的是一个 List数据,每一个被选中的 checkbox 的 value是List的一个对象。
所以在 Action 中定义一个跟 checkbox 的 name 同名的属性来接收这些被选中的 checkbox 的 value 即可。
以下是实现的代码:
前台 HTML 代码:
&input type="checkbox" name="chkName" value="abc"&
&input type="checkbox" name="chkName" value="def"&
&input type="checkbox" name="chkName" value="ghi"&
Action 中的代码:
private List&String& chkN
//getter()、setter() 方法一定要有
public List&String& getChkName(){
return chkN
public void setChkName(List&String& chkName){
this.chkName=chkN
public String execute() throws Exception{
for(int i=0;i&this.getChkName().size();i++){
String chkNameValue=this.getChkName().get(i);
浏览 17744
浏览: 108692 次
来自: 重庆市
可以这样处理的
insert into RO_PERSONR ...
这个给oracle wm_concat(column)函数功能 ...
java.lang.StringBuffer线程安全的可变字符 ...
有测试过stringbuffer和+的效率区别吗,保证线程安 ...昨天学习了这些内容,今天做一下分享吧,个人感觉挺乱的。。。。呵呵,其实没事,慢慢就好了。难的不会,会的不难嘛!努力+认真就可以了,相信大家都可以的!加油!!!
下面的图是我用myeclipse建立的项目的目录。
目录结构有点多哈。。。没事其实很简单的!
下面是我的index.jsp中的全部代码:这里只是有一个表单,提交到TestServlet.java这个servlet中
&%@ page language="java" contentType="text/ charset=GB18030"
&&&&pageEncoding="GB18030"%&
&meta http-equiv="Content-Type" content="text/ charset=GB18030"&
&title&Insert title here&/title&
&&&&&h1&测试servlet&/h1&
&&&&&&&&&form action="servlet/TestServlet" method="post" dir="ltr"&
&&&&&&&&&&&&&input name="userID" type="text"&&br&
&&&&&&&&&&&&&input value="查询" type="submit"&&br&
&&&&&&&&&/form&
下面是TestServlet.java中的全部代码:这个是获取表单提交的内容,然后转发到另一个页面(c.jsp),其中这里包含一个业务逻辑(UserManager.java)
UserManager usermanager=new UserManager();
List userlist=usermanager.findUserByName(username);
以上这两行代码是业务逻辑的代码,获取数据。
package com.majianjie.
import java.io.IOE
import java.util.L
import javax.servlet.ServletE
import javax.servlet.http.HttpS
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
public class TestServlet extends HttpServlet {
&&&&@Override
&&&&protected void service(HttpServletRequest req, HttpServletResponse res)
&&&&&&&&&&&&throws ServletException, IOException {
&&&&&&&&String username=req.getParameter("username");
&&&&&&&&UserManager usermanager=new UserManager();
&&&&&&&&List userlist=usermanager.findUserByName(username);
&&&&&&&&req.setAttribute("userlist", userlist);
&&&&&&&&req.getRequestDispatcher("/a/b/").forward(req, res);//转发getRequestDispatcher
下面是UserManager.java 的代码行(即业务逻辑)
package com.majianjie.
import java.util.ArrayL
import java.util.L
public class UserManager {
&&&&public List&string& findUserByName(String name){
&&&&&&&&List&string& userList=new ArrayList&string&();
&&&&&&&&userList.add("数据一");
&&&&&&&&userList.add("数据二");
&&&&&&&&userList.add("数据三");
&&&&&&&&return userL
&/string&&/string&&/string&
下面是c.jsp的代码
&%@ page language="java" contentType="text/ charset=GB18030"
&&&&pageEncoding="GB18030"%&
&%@ page import="java.util.*" %&
&meta http-equiv="Content-Type" content="text/ charset=GB18030"&
&title&Insert title here&/title&
&&&&&&&&List userList = (List)request.getAttribute("userlist");
&&&&&&&&out.println(userList);
&&&&&/p&&p&
下面是a.jsp的代码
&%@ page language="java" contentType="text/ charset=GB18030"
pageEncoding="GB18030"%&
下面是b.jsp的代码
&%@ page language="java" contentType="text/ charset=GB18030"
pageEncoding="GB18030"%&
e.jsp中的代码和a.jsp中的代码一样,唯一不同的就是:
,将a改为e......大部分代码是自动生成的,很省事的。
最后是web.xml中的代码:这里是一些配置信息。很重要的!!!嘿嘿嘿
&!--?xml version="1.0" encoding="UTF-8"?--&
&web-app version="2.5" xmlns="" xmlns:xsi="" xsi:schemalocation="
&&&welcome-file-list&
&&&&&welcome-file&index.jsp&/welcome-file&
&&&/welcome-file-list&
&&&servlet&
&&&&&servlet-name&TestServlet&/servlet-name&
&&&&&servlet-class&com.majianjie.servlet.TestServlet&/servlet-class&
&&&/servlet&
&&&servlet-mapping&
&&&&&&&&&servlet-name&TestServlet&/servlet-name&
&&&&&&&&&url-pattern&/servlet/TestServlet&/url-pattern&
&&&/servlet-mapping&
&/web-app&
在表单中,当你点击提交按钮,触发这个链接action="servlet/TestServlet"。请求到达服务器tomcat后,tomcat检查当前项目的web.xml中所有的
配置中的的属性值。看当中有没有一个和请求地址servlet/TestServlet相同。结果找到如,如下:
TestServlet
/servlet/TestServlet
/servlet/TestServlet
是你表单的访问地址
然后,tomcat根据上面的TestServlet找到和
相对应的配置如下
TestServlet
com.majianjie.TestServlet
然后根据当中 找到TestServlet.java文件的地址。
然后通过设置tomcat就可以在中访问了。例如我的配置好tomcat后在浏览器中输入:http://localhost:8888/test_servlet/就可以访问了,
结果如图:
点击查询后:
点击超级链接b.jsp后是:&喎?"/kf/ware/vc/"
target="_blank"
class="keylink"&vcD4KPHA+PGltZyBzcmM9"/uploadfile/Collfiles/68.jpg"
阅读(...) 评论()匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。博客分类:
要在web.xml中配置servlet配置好了后 在form的action中直接写你在web.xml中配置的&url-pattern&的名字。。例如&servlet&&servlet-name&AdminLogin&/servlet-name&&servlet-class&com.java.servlet.AdminLogin&/servlet-class&&load-on-startup&22&/load-on-startup&&/servlet&&servlet-mapping&&servlet-name&AdminLogin&/servlet-name&&url-pattern&/AdminLogin&/url-pattern&&/servlet-mapping&在form的action中就直接写AdminLogin就行了
① 完全匹配
&url-pattern&/test/list.do&/url-pattern&
② 路径匹配
&url-pattern&/*&/url-pattern& struts2匹配根路径下的全部请求③ 扩展名匹配
&url-pattern&*.do&/url-pattern& struts1
&url-pattern&*.html&/url-pattern& 匹配全部html结尾的请求
&url-pattern&*&/url-pattern& 不能用*,否则报错
action写中对应的url值~~~比如说有一个LoginServlet,他在中显示的应该是这样:
&servlet-name&LoginServlet&/servlet-name&
&servlet-class&servlet.LoginServlet&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&LoginServlet&/servlet-name&
&url-pattern&/loginServlet&/url-pattern&
&/servlet-mapping&
而要提交的,也就是action应该等于&url-pattern&中的内容:
action="&%=request.getContextPath()%&/loginServlet"
其中&%=request.getContextPath()%&为获得当前工程目录,jsp提交到servlet中必须加这个,否则会出现404找不到页的错误~~
JSP页面提交表单给Servlet时,路径的写法要格外注意。
例如在web.xml中注册如下的servlet:
&servlet-name&addStudent&/servlet-name&
&servlet-class&org.mytest.addStudent&/servlet-class&
&/servlet&
&servlet-mapping&
&servlet-name&addStudent&/servlet-name&
&url-pattern&/servlet/addStudent&/url-pattern&
&/servlet-mapping&
假如说,你工程名字为HibernateApp3,JSP页面提交表单给servlet时有两种写法:
1. &form action=servlet/addStudent method=post&...&/form&
action=/HibernateApp3/servlet/addStudentmethod=post&...&/form&
注意:/代表根目录,如果路径是使用/开头,Tomcat就是webApp那个目录,如果你不是/开头代表你从当前工程的目录开始,例如:webApp/HibernateApp3/
这一点非常重要,很多提交表单时发生的错误都是因为提交路径出错造成的。
这些都是从网上收集到的各种回答,总而言之,action的提交路径,和&url-pattern&&/url-pattern&中的路径保持一致就不会有错,不过是有前提的,就是路径入口处要是指向这个工程的,例如下面这种就是错误:
&form method="get" action="/yutao"& ,,而 &url-pattern&/yutao&/url-pattern&,这样提交表单时,就会报404错误:The requested resource is not available。因为前面的“/”,指的是服务器的根目录,也就是Tomcat目录下的webapps。改为:&form method="get" action="/工程名/yutao",即可。
url-parrern里面放的是servlet访问路径,我目前的结论是这路径随便写都写,当然,注意我上面说的。。。
浏览: 8663 次
自己先顶顶!!!大神们快来啊啊}

我要回帖

更多关于 jsp页面form表单提交 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信