struts2之如何使用复杂的UI标签

转载请注明:http://blog.csdn.net/uniquewonderq

问题:

练习使用复杂的UI标签,并给框体福默认值,标签包括:

7.单选框标签

8.多选框标签

9.下拉框标签

在上一节案例的基础上,继续模拟,使用这3类标签。

步骤一:单选框标签

单选框有两种用法, 根据其初始化radio方式的不同,可以好分为静态和动态2种方式。首先我们使用静态方式来初始化客户性别选项,并根据客户数据勾选客户性别,需要在update_customer.jsp上使用单选框标签来实现 。代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
  <head>
  </head>

  <body>
    <h1>模拟修改客户</h1>

    <%--1.表单标签 --%>
    <s:form action="#" method="post">

    <!--
    	2.文本框标签
    		1>生成文本框
    		2>根据OGNL(customer.name)取值给文本框赋值
     -->
    	 <s:textfield name="customer.name" label="姓名">
    	 </s:textfield>

    <!--
    	3.密码框标签
    		1>生成密码框
    		2>根据OGNL(customer.password)取值给密码框赋值
    -->
    	 <s:password name="customer.password" label="密码" showPassword="true"/>

     <!--
    	4.文本域标签
    		1>生成文本域
    		2>根据OGNL(customer.desc)取值给文本域赋值
     -->
    	 <s:textarea name="customer.desc" label="简介" cols="30" rows="5">
    	 </s:textarea>

    <!--
    	5.布尔框标签
    		1>生成布尔框
    		2>根据OGNL(customer.marry)取值给布尔框赋值
     -->
    	 <s:checkbox name="customer.marry" label="是否已婚" labelposition="left">
    	 </s:checkbox>

    <!--
    	6.1单选框标签
    		1>生成单选框
    		2>根据OGNL(list属性值)创建的Map生成一组radio,其中Map的可以生成radio的value值,
    		Map的value生成radio的label值
    		3>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="#{'M':'男','F':'女'} " label="性别"/>
    	</s:form>
  </body>
</html>

刷新浏览器:

静态方式初始化radio时是通过静态代码创建Map来实现的,很多时候这些选项不是固定的,是需要查询数据库得到的,即需要通过动态的方式来进行初始化选项,那么需要采用动态的方式来实现。

要实现动态初始化选项,先要创建选项实体类,来封装选项信息,因此我们要创建性别的实体类sex,当然这个场景而言并不合理。但是就当是联系说明问题罢了。

package entity;

public class Sex {
		private String code;
		private String name;
		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}

}

然后在customerDAO中追加查询全部性别的方法,代码如下:

package DAO;

import java.util.ArrayList;
import java.util.List;

import entity.Customer;
import entity.Sex;

public class CustomerDAO {
	//模拟根据id查询客户
	public Customer findById(){
		Customer c=new Customer();
		//设置一些默认值
		c.setName("wonder");
		c.setPassword("123");
		c.setDesc("长安大学");
		c.setSex("M");
		c.setMarry(false);

		List<String> list=new ArrayList<String>();
		list.add("beijing");
		list.add("shanghai");
		c.setTravelCities(list);
		c.setHome("xi'an");
		return c;
	}
	public List<Sex> findALLSex(){
		List<Sex> list=new ArrayList<Sex>();
		Sex s1=new Sex();
		s1.setCode("M");
		s1.setName("男");
		list.add(s1);

		Sex s2=new Sex();
		s2.setCode("F");
		s2.setName("女");
		list.add(s2);

		Sex s3=new Sex();
		s3.setCode("0");
		s3.setName("其他");
		list.add(s3);

		return list;
	}
}

然后在ToupdatecustomerACTION中模拟插叙浓缩铀的性别,代码如下:

package action;

import java.util.List;

import DAO.CustomerDAO;
import entity.Customer;
import entity.Sex;

public class ToUpdateCustomerAction {
	//output
	private Customer customer;//客户

	private List<Sex> sexes;//性别

	public String execute(){
		CustomerDAO dao=new CustomerDAO();
		//模拟客户查询
		customer=dao.findById();

		//模拟查询全部的性别
		sexes=dao.findALLSex();
		return "success";
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public List<Sex> getSexes() {
		return sexes;
	}

	public void setSexes(List<Sex> sexes) {
		this.sexes = sexes;
	}

}

最后,在update_customer.jsp上, 使用动态的单选框便签,根据action中返回所有性别生成性别并根据客户信息设置默认勾选,代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
  <head>
  </head>

  <body>
    <h1>模拟修改客户</h1>

    <%--1.表单标签 --%>
    <s:form action="#" method="post">

    <!--
    	2.文本框标签
    		1>生成文本框
    		2>根据OGNL(customer.name)取值给文本框赋值
     -->
    	 <s:textfield name="customer.name" label="姓名">
    	 </s:textfield>

    <!--
    	3.密码框标签
    		1>生成密码框
    		2>根据OGNL(customer.password)取值给密码框赋值
    -->
    	 <s:password name="customer.password" label="密码" showPassword="true"/>

     <!--
    	4.文本域标签
    		1>生成文本域
    		2>根据OGNL(customer.desc)取值给文本域赋值
     -->
    	 <s:textarea name="customer.desc" label="简介" cols="30" rows="5">
    	 </s:textarea>

    <!--
    	5.布尔框标签
    		1>生成布尔框
    		2>根据OGNL(customer.marry)取值给布尔框赋值
     -->
    	 <s:checkbox name="customer.marry" label="是否已婚" labelposition="left">
    	 </s:checkbox>

    <!--
    	6.1单选框标签(静态)
    		1>生成单选框
    		2>根据OGNL(list属性值)创建的Map生成一组radio,其中Map的可以生成radio的value值,
    		Map的value生成radio的label值
    		3>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="#{'M':'男','F':'女'} " label="性别"/>

    <!--
    	6.2单选框标签(动态)

    		1>根据OGNL(list属性值)的取值初始化一组radio,并根据listKey指定的实体类中的属性
    		来生成radio的value值。根据listValue指定的实体类中的属性来生成radio的label值。
    		2>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="sexes" listKey="code" listValue="name" label="性别"/>
    	</s:form>
  </body>
</html>

重新部署项目并启动tomcat,效果如下:

步骤二:

多选框标签

多选框的用法与单选框用法类似,也分为静态初始化和动态初始化2种,区别在于对checkbox初始化方式不同。

首先,我们通过静态初始化的方法生成一组城市的复选框,然后根据客户去过的城市来勾选这些城市。代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
  <head>
  </head>

  <body>
    <h1>模拟修改客户</h1>

    <%--1.表单标签 --%>
    <s:form action="#" method="post">

    <!--
    	2.文本框标签
    		1>生成文本框
    		2>根据OGNL(customer.name)取值给文本框赋值
     -->
    	 <s:textfield name="customer.name" label="姓名">
    	 </s:textfield>

    <!--
    	3.密码框标签
    		1>生成密码框
    		2>根据OGNL(customer.password)取值给密码框赋值
    -->
    	 <s:password name="customer.password" label="密码" showPassword="true"/>

     <!--
    	4.文本域标签
    		1>生成文本域
    		2>根据OGNL(customer.desc)取值给文本域赋值
     -->
    	 <s:textarea name="customer.desc" label="简介" cols="30" rows="5">
    	 </s:textarea>

    <!--
    	5.布尔框标签
    		1>生成布尔框
    		2>根据OGNL(customer.marry)取值给布尔框赋值
     -->
    	 <s:checkbox name="customer.marry" label="是否已婚" labelposition="left">
    	 </s:checkbox>

    <!--
    	6.1单选框标签(静态)
    		1>生成单选框
    		2>根据OGNL(list属性值)创建的Map生成一组radio,其中Map的可以生成radio的value值,
    		Map的value生成radio的label值
    		3>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="#{'M':'男','F':'女'} " label="性别"/>

    <!--
    	6.2单选框标签(动态)

    		1>根据OGNL(list属性值)的取值初始化一组radio,并根据listKey指定的实体类中的属性
    		来生成radio的value值。根据listValue指定的实体类中的属性来生成radio的label值。
    		2>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="sexes" listKey="code" listValue="name" label="性别"/>

    	<!--
    	7.1多选框标签(静态)
    		1>生成多选框
    		2>根据OGNL(list属性值)创建的Map生成一组checkbox,其中Map的可以生成checkbox的value值,
    		Map的value生成chexkbox的label值
    		3>根据OGNL(customer.travelCitys)取值来与生成chexkbox 的value比较 ,若与哪个chexkbox的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.travelCitys" list="#{'beijing':'北京','shanghai':'上海','guangzhou':'广州','shenzhen':'深圳','chongqing':'重庆','diaoyudao':'钓鱼岛'} " label="旅游过的城市"/>

    </s:form>
  </body>
</html>

刷新浏览器:

接下来,我们再看看如何动态的初始化多选框的选项。先创建城市的实体类city,用于封装所有的城市数据,代码如下:

package entity;

public class City {
		private String code;
		private String name;
		public City(String code,String name){
			super();
			this.code=code;
			this.name=name;
		}
		public String getCode() {
			return code;
		}
		public void setCode(String code) {
			this.code = code;
		}
		public String getName() {
			return name;
		}
		public void setName(String name) {
			this.name = name;
		}

}

然后在customerDAO中模拟查询全部的城市,代码如下:

package DAO;

import java.util.ArrayList;
import java.util.List;

import entity.City;
import entity.Customer;
import entity.Sex;

public class CustomerDAO {
	//模拟根据id查询客户
	public Customer findById(){
		Customer c=new Customer();
		//设置一些默认值
		c.setName("wonder");
		c.setPassword("123");
		c.setDesc("长安大学");
		c.setSex("M");
		c.setMarry(false);

		List<String> list=new ArrayList<String>();
		list.add("beijing");
		list.add("shanghai");
		c.setTravelCities(list);
		c.setHome("xi'an");
		return c;
	}
	public List<Sex> findALLSex(){
		List<Sex> list=new ArrayList<Sex>();
		Sex s1=new Sex();
		s1.setCode("M");
		s1.setName("男");
		list.add(s1);

		Sex s2=new Sex();
		s2.setCode("F");
		s2.setName("女");
		list.add(s2);

		Sex s3=new Sex();
		s3.setCode("o");
		s3.setName("其他");
		list.add(s3);

		return list;
	}
	//模拟查询所有的城市
	public List<City> findAllCities(){
		List<City> cities=new ArrayList<City>();
		City c1=new City("beijing", "北京");
		City c2=new City("shanghai", "上海");
		City c3=new City("guangzhou", "广州");
		City c4=new City("shenzhen", "深圳");
		City c5=new City("chongqing", "重庆");
		City c6=new City("diaoyudao", "钓鱼岛");
		cities.add(c1);
		cities.add(c2);
		cities.add(c3);
		cities.add(c4);
		cities.add(c5);
		cities.add(c6);
		return cities;
	}
}

然后在ToUpdatecustomerAction中查询出全部的城市,代码如下:

package action;

import java.util.List;

import DAO.CustomerDAO;
import entity.City;
import entity.Customer;
import entity.Sex;

public class ToUpdateCustomerAction {
	//output
	private Customer customer;//客户

	private List<Sex> sexes;//性别

	private List<City> cities;//城市

	public String execute(){
		CustomerDAO dao=new CustomerDAO();
		//模拟客户查询
		customer=dao.findById();

		//模拟查询全部的性别
		sexes=dao.findALLSex();

		//模拟查询全部的城市
		cities=dao.findAllCities();
		return "success";
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public List<Sex> getSexes() {
		return sexes;
	}

	public void setSexes(List<Sex> sexes) {
		this.sexes = sexes;
	}

	public List<City> getCities() {
		return cities;
	}

	public void setCities(List<City> cities) {
		this.cities = cities;
	}

}

最后在update_customer.jsp上,使用动态的多选框标签,根据Action中返回的所有城市生成城市选项,并根据客户信息设置默认勾选,代码如下:

<%@ page  pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
  <head>
  </head>
  
  <body>
    <h1>模拟修改客户</h1>
    
    <%--1.表单标签 --%>
    <s:form action="#" method="post">
    
    <!-- 
    <span style="white-space:pre">	</span>2.文本框标签
    <span style="white-space:pre">		</span>1>生成文本框
    <span style="white-space:pre">		</span>2>根据OGNL(customer.name)取值给文本框赋值
     -->
    <span style="white-space:pre">	</span> <s:textfield name="customer.name" label="姓名">
    <span style="white-space:pre">	</span> </s:textfield>
    <span style="white-space:pre">	</span> 
    <!-- 
    <span style="white-space:pre">	</span>3.密码框标签
    <span style="white-space:pre">		</span>1>生成密码框
    <span style="white-space:pre">		</span>2>根据OGNL(customer.password)取值给密码框赋值
    -->
    <span style="white-space:pre">	</span> <s:password name="customer.password" label="密码" showPassword="true"/>
    <span style="white-space:pre">	</span> 
     <!-- 
    <span style="white-space:pre">	</span>4.文本域标签
    <span style="white-space:pre">		</span>1>生成文本域
    <span style="white-space:pre">		</span>2>根据OGNL(customer.desc)取值给文本域赋值
     -->
    <span style="white-space:pre">	</span> <s:textarea name="customer.desc" label="简介" cols="30" rows="5">
    <span style="white-space:pre">	</span> </s:textarea>
    <span style="white-space:pre">	</span> 
    <!-- 
    <span style="white-space:pre">	</span>5.布尔框标签
    <span style="white-space:pre">		</span>1>生成布尔框
    <span style="white-space:pre">		</span>2>根据OGNL(customer.marry)取值给布尔框赋值
     -->
    <span style="white-space:pre">	</span> <s:checkbox name="customer.marry" label="是否已婚" labelposition="left">
    <span style="white-space:pre">	</span> </s:checkbox>
    <span style="white-space:pre">	</span> 
    <!-- 
    <span style="white-space:pre">	</span>6.1单选框标签(静态)
    <span style="white-space:pre">		</span>1>生成单选框
    <span style="white-space:pre">		</span>2>根据OGNL(list属性值)创建的Map生成一组radio,其中Map的可以生成radio的value值,
    <span style="white-space:pre">		</span>Map的value生成radio的label值
    <span style="white-space:pre">		</span>3>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    <span style="white-space:pre">		</span>一直,则将其勾选
     -->
    <span style="white-space:pre">	</span> <s:radio name="customer.sex" list="#{'M':'男','F':'女'} " label="性别"/>
    <span style="white-space:pre">	</span> 
    <!-- 
    <span style="white-space:pre">	</span>6.2单选框标签(动态)
    <span style="white-space:pre">		</span>
    <span style="white-space:pre">		</span>1>根据OGNL(list属性值)的取值初始化一组radio,并根据listKey指定的实体类中的属性
    <span style="white-space:pre">		</span>来生成radio的value值。根据listValue指定的实体类中的属性来生成radio的label值。
    <span style="white-space:pre">		</span>2>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    <span style="white-space:pre">		</span>一直,则将其勾选
     -->
    <span style="white-space:pre">	</span> <s:radio name="customer.sex" list="sexes" listKey="code" listValue="name" label="性别"/>

    <span style="white-space:pre">	</span>
    <span style="white-space:pre">	</span><!-- 
    <span style="white-space:pre">	</span>7.1多选框标签(静态)
    <span style="white-space:pre">		</span>1>生成多选框
    <span style="white-space:pre">		</span>2>根据OGNL(list属性值)创建的Map生成一组checkbox,其中Map的可以生成checkbox的value值,
    <span style="white-space:pre">		</span>Map的value生成chexkbox的label值
    <span style="white-space:pre">		</span>3>根据OGNL(customer.travelCitys)取值来与生成chexkbox 的value比较 ,若与哪个chexkbox的value值
    <span style="white-space:pre">		</span>一直,则将其勾选
     -->
    <span style="white-space:pre">	</span> <s:checkboxlist name="customer.travelCitys" list="#{'beijing':'北京','shanghai':'上海','guangzhou':'广州','shenzhen':'深圳','chongqing':'重庆','diaoyudao':'钓鱼岛'}"  label="旅游过的城市"/>
    <span style="white-space:pre">	</span> 
    <span style="white-space:pre">	</span> <!-- 
    <span style="white-space:pre">	</span>7.2单选框标签(动态)
    <span style="white-space:pre">		</span>1>根据OGNL(list属性值)的取值初始化一组checkbox,并根据listKey指定的实体类中的属性
    <span style="white-space:pre">		</span>来生成checkbox的value值。根据listValue指定的实体类中的属性来生成checkbox的label值。
    <span style="white-space:pre">		</span>2>根据OGNL(customer.travelCitys)取值来与生成checkbox 的value比较 ,若与哪个check的value值
    <span style="white-space:pre">		</span>一直,则将其勾选
     -->
    <span style="white-space:pre">	</span> <s:checkboxlist name="customer.travelCitys" list="cities" listKey="code" listValue="name" label="旅游过的城市"/>
     <span style="white-space:pre">	</span> 
    </s:form>
  </body>
</html>

刷新浏览器:

步骤三:下拉选标签

下拉选标签的用法类似,先使用静态方式。代码如下:

 <s:select name="customer.home" list="#{'beijing':'北京','shanghai':'上海','guangzhou':'广州','shenzhen':'深圳','chongqing':'重庆','diaoyudao':'钓鱼岛'}" label="家乡" headerKey="-1" headerValue="请选择"></s:select>

刷新浏览器:

动态初始化代码:

<%@ page  pageEncoding="utf-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
  <head>
  </head>

  <body>
    <h1>模拟修改客户</h1>

    <%--1.表单标签 --%>
    <s:form action="#" method="post">

    <!--
    	2.文本框标签
    		1>生成文本框
    		2>根据OGNL(customer.name)取值给文本框赋值
     -->
    	 <s:textfield name="customer.name" label="姓名">
    	 </s:textfield>

    <!--
    	3.密码框标签
    		1>生成密码框
    		2>根据OGNL(customer.password)取值给密码框赋值
    -->
    	 <s:password name="customer.password" label="密码" showPassword="true"/>

     <!--
    	4.文本域标签
    		1>生成文本域
    		2>根据OGNL(customer.desc)取值给文本域赋值
     -->
    	 <s:textarea name="customer.desc" label="简介" cols="30" rows="5">
    	 </s:textarea>

    <!--
    	5.布尔框标签
    		1>生成布尔框
    		2>根据OGNL(customer.marry)取值给布尔框赋值
     -->
    	 <s:checkbox name="customer.marry" label="是否已婚" labelposition="left">
    	 </s:checkbox>

    <!--
    	6.1单选框标签(静态)
    		1>生成单选框
    		2>根据OGNL(list属性值)创建的Map生成一组radio,其中Map的可以生成radio的value值,
    		Map的value生成radio的label值
    		3>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="#{'M':'男','F':'女'} " label="性别"/>

    <!--
    	6.2单选框标签(动态)

    		1>根据OGNL(list属性值)的取值初始化一组radio,并根据listKey指定的实体类中的属性
    		来生成radio的value值。根据listValue指定的实体类中的属性来生成radio的label值。
    		2>根据OGNL(customer.sex)取值来与生成radio 的value比较 ,若与哪个radio的value值
    		一直,则将其勾选
     -->
    	 <s:radio name="customer.sex" list="sexes" listKey="code" listValue="name" label="性别"/>

    	<!--
    	7.1多选框标签(静态)
    		1>生成多选框
    		2>根据OGNL(list属性值)创建的Map生成一组checkbox,其中Map的可以生成checkbox的value值,
    		Map的value生成chexkbox的label值
    		3>根据OGNL(customer.travelCitys)取值来与生成chexkbox 的value比较 ,若与哪个chexkbox的value值
    		一直,则将其勾选
     -->
    	 <s:checkboxlist name="customer.travelCitys" list="#{'beijing':'北京','shanghai':'上海','guangzhou':'广州','shenzhen':'深圳','chongqing':'重庆','diaoyudao':'钓鱼岛'}"  label="旅游过的城市"/>

    	 <!--
    	7.2单选框标签(动态)
    		1>根据OGNL(list属性值)的取值初始化一组checkbox,并根据listKey指定的实体类中的属性
    		来生成checkbox的value值。根据listValue指定的实体类中的属性来生成checkbox的label值。
    		2>根据OGNL(customer.travelCitys)取值来与生成checkbox 的value比较 ,若与哪个check的value值
    		一直,则将其勾选
     -->
    	 <s:checkboxlist name="customer.travelCitys" list="cities" listKey="code" listValue="name" label="旅游过的城市"/>

     	 <s:select name="customer.home" list="#{'beijing':'北京','shanghai':'上海','guangzhou':'广州','shenzhen':'深圳','chongqing':'重庆','diaoyudao':'钓鱼岛'}" label="家乡" headerKey="-1" headerValue="请选择"></s:select>

     	 <s:select name="customer.home" list="cities" listKey="code" listValue="name" label="家乡" headerKey="" headerValue="请选择"></s:select>
    </s:form>
  </body>
</html>

刷新浏览器:

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-28 20:01:39

struts2之如何使用复杂的UI标签的相关文章

Struts2中UI标签之表单标签介绍

1.在Struts2中UI标签的表单标签分为两种:form标签本身和单个表单标签. 2.Struts2表单标签包括:form.textfield.password.radio.checkbox.checkboxlist.select.doubleselect.combobox.optiontransferselect.optgroup.updownselect.textarea.hidden.file.label.submit.token.head.datepicker.reset.richte

二十四、Struts2中的UI标签

二十四.Struts2中的UI标签 Struts2中UI标签的优势: 数据回显 页面布局和排版(Freemark),struts2提供了一些常用的排版(主题:xhtml默认 simple ajax) 可以使用OGNL表达式 模板: 常量设置的:struts.ui.theme=xhtml 开发中建议设置为struts.ui.theme=simple;

struts2 UI标签 和 主题

四.Struts2的UI标签和主题 1.Struts2中UI标签的优势 自动的数据回显和错误提示功能 自带的简单样式和排版 2.表单标签的通用属性 说明:UI标签中value的取值一般都是字符串. 2.1.UI标签的通用属性 2.2.关于checkboxlist的使用: 1 /** 2 * s:checkboxlist标签的使用 3 * @author zhy 4 * 5 */ 6 public class Demo6Action extends ActionSupport { 7 8 //初始

Struts2(八)之UI标签和防止表单重复提交

一.UI标签 1.1.struts2中UI标签的优势 自动的数据回显和错误提示功能 自带的简单样式和排版 1.2.UI案例 结果: 1.3.UI标签的主题 1.3.1.struts2中默认的主题 默认主题的名称是XHTML,都是在struts的默认属性文件中定义着:default.properties 默认模板存放位置: 1.3.2.更改默认主题 1.更改表单某个元素的默认主题:使用的是表单元素的theme属性. 2.更改表单所有主题:使用的是form标签的theme属性. 3.更改全站所有表单

Struts2中UI标签之表单标签的一个例子

1.最近写了一篇文章,介绍了一下Struts2中UI标签的表单标签,文章地址为:http://blog.csdn.net/u012561176/article/details/44986183  因为缺少了个例子,大家看文字和表格也看不出什么效果来,所以今天来介绍一个例子,用Struts2中UI标签的表单标签实现一个个人信息的表单,但是有些表单标签没有演示出来,大家可以根据我介绍UI标签的表单标签来进行学习,这里只是给个例子. 2.首先新建一个Struts2项目,项目名为PersonMess

修改struts2中UI标签的&lt;s:a&gt;进行权限控制

最近在做学习S2SH时,有一个模块式权限控制,就是对用户的操作存在权限分级操作,即不是所有的用户都可以访问全部数据.下面说一下这次我们的做法. 1.所谓权限控制,就是对URL地址的控制,用户角色中不存在该权限,那么该url地址对用户是不起反应的(用户点击无反应),最好是不可见的.整体的思路就是这样,通过对UI标签的控制而达到对权限的控制. 2.我们使用的是struts2中的a标签,而非使用简单的html中a标签.原因是在<s:a>标签的源码中存在doStartTag()和doEndTag()方

Struts2 UI标签

表单标签的共同属性(该属性只在没有使用 simple 主题时才可以使用) form 标签  用来呈现 HTML 语言中的表单元素 默认情况下, form 标签将被呈现为一个表格形式的 HTML 表单. 嵌套在 form 标签里的输入字段将被呈现为一个表格行. 每个表格行由两个字段组成, 一个对应着行标, 一个对应着输入元素.提交按钮将被呈现为一个横跨两列单元格的行(lable,name,value) textfield, password, hidden 标签       textfield 标

struts2的返回类型、struts的标签库、struts2中完成国际化

struts2的返回类型:在jsp-servlet中, 返回的类型主要有 转发, 重定向: 转发主要是RequestDispatcher的forward方法来进行操作的req.getRequestDispatcher("goods/queryGoodFenYe.jsp").forward(req, resp);重定向主要使用response对象的一些方法来操作:1.response.sendRedirect("index.jsp");2.response.addHe

UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)

1. ckfinder(ckfinder插件标签) 1.1. 参数 属性名 类型 描述 是否必须 默认值 name string 属性名称 是 null value string 默认值 否 null width string 显示图片宽(上传类型为Images时) 否 null height string 显示图片高(上传类型为Images时) 否 null buttonClass string 按钮样式 否 null buttonValue string 按钮文本 否 null upload