Struts2标签可以分为UI标签,非UI标签和ajax标签。1.UI标签:主要用于显示页面,生成HTML。2.非UI标签:主要是访问数据,其中它可以分为数据标签(数据储存和处理)和控制标签(条件和循环等流程的控制)。3.ajax标签:主要支持ajax技术。
下面我想说的一种标签是非UI标签中的数据标签-- set。set标签的属性name(已经过时),id(已过时),var用来定义变量名,value用来赋值新变量的值,如果没有指定value的值,则将valueStack栈顶的值赋给新的变量,value属性的类型为Object。所以value值为字符串的时候要特别注意加单引号,即(value=" ' lkk' "),其中lkk就是字符串。最后一个为scope属性,默认值为action,可选值为page,session,request,application和action,类型为String,用来指定范围。如果scope取值为默认值action,value属性的值将同时保存到request和Stack Context中。其实总结一点就是用scope定义一个范围,然后到相应的范围中去取值,如果没有定义范围,就到request和Stack Context中去取值。下面我自己学习时的案例。
set 设定adminName的值(默认设置在request和Stack Context中):<s:set name="adminName" value="username"/>
set 从request中取值:<s:property value="#request.adminName"/>
set 从Stack Context中取值:<s:property value="#adminName"/>
set 设定范围<s:set var="adminPassword" value="password" scope="page"/>
set 从相应范围内取值:<%=pageContext.getAttribute("adminPassword") %>