复选框和Struts2后台交互代码详解

本文研究的主要是Struts框架中复选框的相关内容。复选框在web开发中用的非常广泛,具体介绍如下。

案例

如下图,当前为用户选中的水果为"香蕉",点击按钮,跳转到修改界面进行修改。

跳转到修改界面后要回显用户的选择(香蕉),然后由用户再次进行勾选,如图:

前台界面:

<body>
 <form action="checBoxAction_test.action" method="post">
 请选择您喜欢的水果:<br>
 <input type="checkbox" name="fruits" value="香蕉"/>香蕉
 <input type="checkbox" name="fruits" value="雪梨"/>雪梨
 <input type="checkbox" name="fruits" value="西瓜"/>西瓜</br> 

 <input type="submit" value="跳转到修改界面进行修改">
 </form>
 </body> 

后台ChecBoxAction.java代码:

public class ChecBoxAction extends ActionSupport {
	private static final long serialVersionUID = 1L;
	/*前台通过复选框选中的水果名称*/
	private String fruits;
	public String getFruits() {
		return fruits;
	}
	public void setFruits(String fruits) {
		this.fruits = fruits;
	}
	public String test(){
		/*没去除空格之前*/
		System.out.println(this.getFruits());
		/*获取从前台穿过来的字符串(注:这里必须去除空格,因为传过来的每个值之间除了有逗号分隔符之外还都有空格,但是通过trim()的方式是去不掉空格的)*/
		//String fruitStr = this.getFruits().trim();
		/*必须如是这般才能去掉空格*/
		String fruitStr = this.getFruits().replaceAll(" ", "");
		System.out.println("去除空格之后的字符串:" + fruitStr);
		/*把字符串通过逗号分隔为一个字符串数组*/
		String[] fruit = fruitStr.split(",");
		/*遍历所有的值,把它们存到一个集合中*/
		List<String> myFruits = new ArrayList<String>();
		for (int i=0; i<fruit.length; i++){
			myFruits.add(fruit[i]);
		}
		/*把用户选中的复选框存到Map中发送到前台*/
		ActionContext.getContext().put("myFruits", myFruits);
		/*模拟从数据库中查出所有的值,在前台展示,然后和用户选中的进行匹配*/
		List<String> list = new ArrayList<String>();
		list.add("香蕉");
		list.add("雪梨");
		list.add("西瓜");
		ActionContext.getContext().put("list", list);
		return this.SUCCESS;
	}
}

注:复选框向后台传值,传过去的是一个字符串,且带有空格,所以必须去除空格,但是用trim()方法是去除不了的,使用trim()方法之后的效果。如下:

如图,毫无效果!但是,我们可以使用replaceAll()方法,去替代空格,效果如下:

另外为了在修改界面展示所有的复选框(水果),我们在Action中模拟从数据库中取出所有的值,然后和用户选择的复选框一起传到修改界面。

修改界面:

<body>
 <form action="checBoxAction_test.action" method="post">
  您选择的水果:<br>
  <c:forEach items="${list}" var="list"> 

  <input type="checkbox" value="${list}"
    <c:forEach items="${myFruits}" var="fr">
      ${fr == list ? "checked" : ""}
    </c:forEach>
  />${list} 

  </c:forEach> 

 </br> <input type="submit" value="修改"/>
  </form>
 </body> 

注:修改界面比较复杂,首先是遍历所有复选框(水果),在每个浮选中又使用一个forEach循环,去遍历用户选择的所有复选框(水果),然后通过三目运算符去判断当前复选框是否被用户选中,如果匹配,就勾选。

总结

以上就是本文关于复选框和Struts2后台交互代码详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(0)

相关推荐

  • 实例详解java Struts2的配置与简单案例

    Struts2的配置与简单案例: 1. 创建一个dynamic web project(创建时让它自动生成web.xml文件) 2.引入相关jar包 3.在web.xml中进行配置 (启动tomcat服务器之后第一个加载的文件就是web.xml) 在配置中添加过滤器: <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filte

  • Java Struts图片上传至指定文件夹并显示图片功能

    继上一次利用Servlet实现图片上传,这次利用基于MVC的Struts框架,封装了Servlet并简化了JSP页面跳转. JSP上传页面 上传一定要为form加上enctype="multipart/form-data",表示提交的数据时二进制的 并且必须是method="post" <%@ page language="java" contentType="text/html; charset=utf-8" page

  • Java中struts2和spring MVC的区别_动力节点Java学院整理

    1.Struts2是类级别的拦截, 一个类对应一个request上下文,SpringMVC是方法级别的拦截,一个方法对应一个request上下文,而方法同时又跟一个url对应,所以说从架构本身上SpringMVC就容易实现restful url,而struts2的架构实现起来要费劲,因为Struts2中Action的一个方法可以对应一个url,而其类属性却被所有方法共享,这也就无法用注解或其他方式标识其所属方法了. 2.SpringMVC的方法之间基本上独立的,独享request respons

  • java+jsp+struts2实现发送邮件功能

    以下总结是2016/3/23在做一个网站时遇到的一个功能模块,现在将总结从为知笔记上搬家到CSDN,与大家共享,欢迎指正. 0.准备工作 0.1先建立一个web项目,添加struts2开发包 0.2.需要另外导入一下两个jar包 mail.jar,activation.jar,可以自己网上下载,很多的! 以下为详细过程! 1.index.jsp页面 <%@ page language="java" import="java.util.*" pageEncodi

  • java中的Struts2拦截器详解

    最近在学习struts的拦截器,现在来总结一下. 1.拦截器是什么? 拦截器相当于过滤器:就是将不想要的去掉,想要的留下.拦截器抽象出一部分代码可以用来完善原来的action.同时可以减轻代码冗余,提高重用率.通俗地讲就是一张网,过滤掉不需要的沙子,留下水. 2.拦截器的作用: 拦截器可以构成特定的功能.比如权限认证.日志记录和登陆判断. 3.拦截器的原理: 其每一个Action请求都在拦截器中,每一个action可以将操作转交给下面的拦截器,也可以直接退出到界面上. 4.定义拦截器: (1)自

  • struts1之ActionServlet详解_动力节点Java学院整理

    在web.xml中我们除了配置ActionServlet还配置了一些初始化参数信息,首先我们看第一个config参数,这里配置的是/WEB-INF/struts-config.xml,因为要下面传递一个这样一个配置信息,这个xml文件名是struts1标准的名字,所以这里这个初始化信息完全可以删除,如果不用这个标准名称这里就必须要在这里配置.现在我们配置的是标准名字,所以我们可以删除,这是为什么呢?这里要看ActionServlet源代码才可以. 从图片上我们能看到ActionServlet中已

  • struts1登录示例代码_动力节点Java学院整理

    Struts1框架实例-登录实例: 1.实例开始工作-导入jar包,在官网上下载struts1框架包,解压之后导入工程的: 2.之后配置web.xml(这里的具体配置方法可以参见struts1框架包中的实例文件夹webapps中的实例代码中web.xml文件的配置方法): 具体如下: <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?> &

  • 详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)

    一.整合原理 二.导包(41个) 1.hibernate (1)hibernate/lib/required (2)hibernate/lib/jpa | java persist api java的持久化规范(接口) (3)数据库驱动 2.struts2 (1)struts-blank.war/WEB-INF/lib/* 注意:javassist-3.18.1-GA.jar包与hibernate中的重复(只保留高版本即可) (2)struts整合spring插件包 注意:这个包一旦导入,那么s

  • 复选框和Struts2后台交互代码详解

    本文研究的主要是Struts框架中复选框的相关内容.复选框在web开发中用的非常广泛,具体介绍如下. 案例 如下图,当前为用户选中的水果为"香蕉",点击按钮,跳转到修改界面进行修改. 跳转到修改界面后要回显用户的选择(香蕉),然后由用户再次进行勾选,如图: 前台界面: <body> <form action="checBoxAction_test.action" method="post"> 请选择您喜欢的水果:<b

  • CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解

    CodeIgniter 是一个小巧但功能强大的 PHP 框架,作为一个简单而"优雅"的工具包,它可以为开发者们建立功能完善的 Web 应用程序.是比较主流的一个PHP框架. 下面给大家介绍CI框架(ajax分页,全选,反选,不选,批量删除)完整代码,具体代码如下所示: //ajax分页+搜索(视图层) function ajax_page(page){ var sou = $('#sou').val(); $.ajax({ type: "POST", dataTyp

  • BootStrap模态框闪退问题实例代码详解

    模态框闪退到你还看不到模态框的内容呢,就屏幕灰了一下就是 代码如下 <!--搜索注册条--> <div class="container-fluid"> <form class="navbar-form navbar-center" role="Search"> <div class="form-group text-center col-sm-4"> <input typ

  • jquery判断checkbox(复选框)是否被选中的代码

    复制代码 代码如下: //是否被选中验证有选中的return true,否return false function mycheckbox() { var falg = 0; $("input[name='soft[]']:checkbox").each(function () { if ($(this).attr("checked")) { falg += 1; } }) if (falg > 0) return true; else return fals

  • 表单复选框向PHP传输数据的代码

    表单复选框就是checkbox 1.checkbox的应用  复制代码 代码如下: <input type="checkbox" name="ch" value="2">  2.由于我传输的是在php循环中产生的数组,因此value也要设成变量:     <?php         for($i=0;$i<10;$i++){     ?>      <input type="checkbox"

  • JavaScript限定复选框的选择个数示例代码

    有10个复选框,用户最多只能勾选3个,否则就灰掉所有复选框. (用户再次勾掉复选框时,仍然可以再次选择.) 将可变的部分设置为JS的参数,以实现代码复用. JS代码 第一个参数为复选框的name,第二个参数为最多允许的勾选值. 复制代码 代码如下: function choicetest(name,num){ var choicearr = document.getElementsByName(name); var a=0; for(var i=0;i<choicearr.length;i++)

  • ASP checkbox复选框是否被选中的代码(结合数据库)

    有的时候,我们在网页中会用到复选框,也就是多选框,当用户提交输入信息的时候我们会获取复选框的内容,然后保存到数据库中,如经常用到的是用户输入的个人信息.可是当用户提交后可能还需要修改,那么我们就要从数据库中读出这些表单数据,这就要求必须把用户之前输入的状态给显示出来,可是当我们从数据库中读出复选框是否被选中时确很难实现.所以今天就教大家通过ASP从数据库中读出复选框是否被选中的方法,希望还有其他方法的朋友留言分享. 具体代码如下所示: 复制代码 代码如下: <% document=Split(r

  • jquery判断单个复选框是否被选中的代码

    <input type="checkbox" id="cr" /><label for="cr">我已经阅读</label> a 用DOM方式来判断是否被选中 复制代码 代码如下: $(function(){ var $cr = $("#cr"); var cr =$cr[0]; $cr.click(function(){ if(cr.checked){ alert("谢谢注册&q

  • js 实现复选框只能选择一项的示例代码

    实例如下所示: <!DOCTYPE HTML> <html> <head> <title></title> </head> <body> <ul> <li><input type="checkbox" name="ss" onclick="choose(this)">1</li> <li><inpu

  • php checkbox复选框值的获取与checkbox默认值输出方法

    php获取 checkbox复选框值的方法 复制代码 代码如下: <html xmlns="http://www.jb51.net/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>php获取 checkbox复选框值的方法</title> &

随机推荐