struts 标签库select、datepicker、checkboxlist、doubleselect标签使用学习笔记

在显示默认值时textfield、password、combox不需要写value属性,在struts框架下,只要action层的属性名字与其标签中的name属性值一样,struts将自动获取到值

demo

 <s:form name="form1" method="post" namespace="/users" action="update" theme="simple">

姓名:<s:textfield name="username" ></s:textfield><br>
密码:<s:password name="password" ></s:password><br>
确认密码:<s:password name="repassword"></s:password><br>
性别:<s:select list="#{'1':'男','2':'女' }" value="sex"></s:select><br>
年龄:<s:textfield name="age"></s:textfield><br>

<sx:datetimepicker name="birthDay" value="#birthDay" displayFormat="yyyy-MM-dd" label="生日" ></sx:datetimepicker><br>

爱好:<s:checkboxlist list="hobbies" name="hobby" value="hobby" listKey="id" listValue="idvalue"></s:checkboxlist><br>

是否对学习感兴趣:<s:radio label="是否对学习感兴趣" name="radioselect" list="radios" listKey="name" listValue="value" value="radioselect"></s:radio><br>
 民族:<s:combobox list="nations" name="nation" listKey="id" listValue="idvalue"></s:combobox><br>

 地址:<s:doubleselect doubleList="shengshiList[top]" list="shengshiList.keySet()" listKey="pid" listValue="pvalue" doubleListKey="cid"  doubleListValue="cvalue" doubleName="shiSimple" name="shengSimple" value="shengSimple" doubleValue="shiSimple"></s:doubleselect>
 <br>
 
 城市:<s:select list="#{'1':'美国','2':'俄国'}" name="chengshi5" value="chengshi5">
					<s:optgroup list="#{'3':'美国城市1','4':'俄国城市1'}" label="扩展城市"
					listKey="key" listValue="value" ></s:optgroup>
	</s:select><br><br>
 
 是否公开个人信息:<s:checkbox name="isShow" value="isShow"></s:checkbox><br>
 <s:submit value="提交修改" theme="simple"></s:submit>
</s:form>

需要注意的是password不会回显数据,应该是处于安全性的考虑,博主修行尚浅,暂时没有研究其源码。

select、datapicker、chekboxlist、radio、doubleselect、checkbox都需要写value属性,前提是要回显数据,如果不回显,自然不需要。

checkbox的value为布尔类型

doubleselect动态的list为map类型Map<Entity A,List<Entity B>> maplist;doubleList=maplist[top],list=maplist.keySet()(key的集合);  对应的listKey=aid;listValue=avalue(这里假设A的两个属性为 aid,avalue;B的属性有bid,bvalue);doubleListKey="bid",doubleListKey="bvalue";分别制定doubleName和name及value和doubleValue。

combox的list属性是List类型,List<T>,对应listKey为T的属性1,listValue为T的属性2。

select的list也是List类型,optgroup的list同理。radioselect同理,checkbox同理,datepicker是struts自带的,需要导入struts-dojo-tags架包,在使用时要注意在</head>前要加上

<s:head theme="xhtml"/>
<sx:head parseContent="true"/>如果没有写,那么这个date框就没有,显示不出来;

并且jsp文件头前要写入标签<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>。

在checkbox使用时特别注意:

有时候会这样,在前台写的chekbox单选框的时候,后台获取的值始终未true或者false,问题在于struts需要的是这种getset方法,

public void setShow(boolean isShow) {
		this.isShow = isShow;
	}
	public boolean getIsShow() {
		return isShow;
	}
而myeclipse生成的是下面这样的,没记错的话应该是,这个问题困扰了博主半天,网上找各种方法,最后还是找到了,大家在使用时要注意。
public void isShow(boolean isShow) {
		this.isShow = isShow;
	}
	public boolean getIsShow() {
		return isShow;
	}
还有许多标签,在上述中,需要在s:form标签对中使用,否则会报缺失属性的错误,500错误,表达式参数名属性未定义,Expression parameters.forName is undefined...Class:freemaker.core.TemplateObject。这里博主就不一一举例了,大家试试就知道了。









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值