📄 struts2.txt
字号:
<s:set name="foobar"
value="#{'Java': {'Spring', 'Hibernate', 'Struts 2'}, '.Net': {'Linq', ' ASP.NET 2.0'}, 'Database': {'Oracle', 'SQL Server', 'DB2', 'MySQL'}}" />
<s:doubleselect list="#foobar.keySet()"
doubleName="technology"
doubleList="#foobar[top]"
label="Technology" />
<s:updownselect>:可以上下移动的列表项
<s:updownselect
label = "Favourite Countries"
list="#{'england':'England', 'america':'America', 'germany':'Germany'}"
name="prioritisedFavouriteCountries"
headerKey="-1"
headerValue="--- Please Order Them Accordingly ---"
emptyOption="true" />
<s:optiontransferselect/>:可以左右交换,上下移动的选择信息
<s:optiontransferselect
label="Favourite Cartoons Characters"
name="leftSideCartoonCharacters"
leftTitle="Left Title"
rightTitle="Right Title"
list="{'Popeye', 'He-Man', 'Spiderman'}"
multiple="true"
headerKey="headerKey"
headerValue="--- Please Select ---"
emptyOption="true"
doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
doubleName="rightSideCartoonCharacters"
doubleHeaderKey="doubleHeaderKey"
doubleHeaderValue="--- Please Select ---"
doubleEmptyOption="true"
doubleMultiple="true" />
导入一个文件并加入参数:
<s:include value="/condition.jsp">
<s:param name="name">Max</s:param>
<s:param name="name" value="">Max</s:param>
</s:include>
s:param的属性列表:
name 否 String 参数名
value 否 String value表达式
id 否 Object/String 用来标识元素的id。在UI和表单中为HTML的id属性
OGNL
作用:显示对象的属性值
#的作用:
1、显示request、session、application、parameters、atrr中的值,具体实例如下:
<s:property value="#request.user.userName"/>
attr可以代表request、session、application,查找顺序request>session>applcation
parameters代表表单域:
一个值:
<s:property value="#parameters.userName"/>
多个重名值:
<s:property value="#parameters.userName[0]"/>
2、过滤
1、取一批值
<s:iterator value="#request.users.users.{?#this.sex=='123'}" id="user" >
2、取一行的一个属性值
<s:property value="#request.users.users.{?#this.sex=='123'}.{userName}[0]"/>
3、定义hashMap
<s:set name="maps" value="#{1:'a1',2:'a2',3:'a3',4:'a4'}"/>
%的作用:相当于s:property
<s:property value="#request.user.userName"/>
<s:set name="p_userName" value="%{#request.user.userName}"/>
$有两个主要的用途
用于在国际化资源文件中,引用OGNL表达式
userName=用户名
password=密码
age=年龄
birthday=生日
userNameRequiredError=${getText('userName')}不能为空
pwdRequiredError=${getText('password')}不能为空
pwdLengthError=${getText('password')}的长度必在${minLength}和${maxLength}之间
ageValueError=${getText('age')}的长度必在${min}和${max}之间
birthdayError=${getText('birthday')}${birthday}的范围在${min}和${max}之间
${getText('userName')}是资源文件中已有的信息
${min}:是在LoginAction-validation.xml配置的参数信息
${birthday}取出单行文本<s:textfiled name="birthday">的信息
在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack" />
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
struts2中的相关标签:
非ui组件
--判断
<s:if test="#request.user.userName=='张三'">
是张三
</s:if>
<s:elseif test="#request.user.userName=='李四'">
是李四
</s:elseif>
<s:else>
不知道
</s:else>
--迭代
<s:iterator value="#request.users" id="user1" state="state">
<s:property value="#user1.userName"/>
</s:iterator>
--设置set
name 是 String 变量名字
scope 否 String 变量作用域,可以为application, session, request, page, 或action.
value 否 Object/String 将会赋给变量的值
id 否 Object/String 用来标识元素的id。在UI和表单中为HTML的id属性
--显示属性
<s:property value=""/>
ui组件
下拉列表
语法
<s:select list="" listKey="" listValue="" value="" label=""/>
list:代表数据来源于一个集合
listKey:显示的值
listValue:真正的值
value:如果listValue中的值与value中的值相等,则对应项会选中
label:显示标签名
实例:
1、常数
<s:select list="#{1:'a1',2:'a2',3:'a3'}" listKey="key"
listValue="value" value="{'a1','a2'}"
2、可以取在application、session、request中的对象
<s:select list="#request.sexes" listKey="name" listValue="code"
value="{'01'}"/>
复选框:
1、普通集合
<s:checkboxlist name="skills1"
label="Skills 1"
list="{ 'Java', '.Net', 'RoR', 'PHP' }"
value="{ 'Java', '.Net' }" />
2、hashMap
<s:checkboxlist name="skills2"
label="Skills 2"
list="#{ 1:'Java', 2: '.Net', 3: 'RoR', 4: 'PHP' }"
listKey="key"
listValue="value"
value="{ 1, 2, 3 }"/>
两个组合框,第一个组合框发生改变时,自动更新第二个组合框
1、代码中直接构造集合
<s:doubleselect
tooltip="Choose Your State"
label="State"
name="region" list="{'North', 'South'}"
value="'South'"
doubleValue="'Florida'"
doubleList="top == 'North' ? {'Oregon', 'Washington'} : {'Texas', 'Florida'}"
doubleName="state"
headerKey="-1"
headerValue="---------- Please Select ----------"
emptyOption="true" />
2、 取已有集合中的值
<s:set name="foobar"
value="#{'Java': {'Spring', 'Hibernate', 'Struts 2'}, '.Net': {'Linq', ' ASP.NET 2.0'}, 'Database': {'Oracle', 'SQL Server', 'DB2', 'MySQL'}}" />
<s:doubleselect list="#foobar.keySet()"
doubleName="technology"
doubleList="#foobar[top]"
label="Technology" />
<s:token/>:保证一个请求只被执行一次
1、服务端jsp代码
<input type="hidden" name="struts.token.name" value="struts.token"/>
2、执行完后客户端代码,如果提交相同struts.token,struts会回退请求
<input type="hidden" name="struts.token" value="BXPNNDG6BB11ZXHPI4E106CZ5K7VNMHR"/>
3、若用token必须在action中加入拦截器,内容如下:
<action name="Token" class="tutorial.CoolTagAction">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result name="invalid.token">/token.jsp</result>
<result>/token.jsp</result>
</action>
<s:datatimerpicker>:时间选择器
<s:datetimepicker name="birthday" label="Birthday" />:显示时间
<s:updownselect>:可以上下移动的列表项
<s:updownselect
label = "Favourite Countries"
list="#{'england':'England', 'america':'America', 'germany':'Germany'}"
name="prioritisedFavouriteCountries"
headerKey="-1"
headerValue="--- Please Order Them Accordingly ---"
emptyOption="true" />
<s:optiontransferselect/>:可以左右交换,上下移动的选择信息
<s:optiontransferselect
label="Favourite Cartoons Characters"
name="leftSideCartoonCharacters"
leftTitle="Left Title"
rightTitle="Right Title"
list="{'Popeye', 'He-Man', 'Spiderman'}"
multiple="true"
headerKey="headerKey"
headerValue="--- Please Select ---"
emptyOption="true"
doubleList="{'Superman', 'Mickey Mouse', 'Donald Duck'}"
doubleName="rightSideCartoonCharacters"
doubleHeaderKey="doubleHeaderKey"
doubleHeaderValue="--- Please Select ---"
doubleEmptyOption="true"
doubleMultiple="true" />
引入struts2的css及javaScript脚本
< s:head />
导入一个文件并加入参数:
<s:include value="/condition.jsp">
<s:param name="name">Max</s:param>
<s:param name="name" value="">Max</s:param>
</s:include>
s:param的属性列表:
name 否 String 参数名
value 否 String value表达式
id 否 Object/String 用来标识元素的id。在UI和表单中为HTML的id属性
OGNL
作用:显示对象的属性值
#的作用:
1、显示request、session、application、parameters、atrr中的值,具体实例如下:
<s:property value="#request.user.userName"/>
attr可以代表request、session、application,查找顺序request>session>applcation
parameters代表表单域:
一个值:
<s:property value="#parameters.userName"/>
多个重名值:
<s:property value="#parameters.userName[0]"/>
2、过滤
1、取一批值
<s:iterator value="books.{?#this.book.price>100}" id="book"/>
2、取一行的一个属性值
<s:property value="books.{?#this.book.title=='java'}.{bookName}[0]"/>
3、定义hashMap
<s:set name="maps" value="#{1:'a1',2:'a2',3:'a3',4:'a4'}"/>
%的作用:相当于s:property
<s:property value="#request.user.userName"/>
<s:set name="p_userName" value="%{#request.user.userName}"/>
$有两个主要的用途
用于在国际化资源文件中,引用OGNL表达式
userName=用户名
password=密码
age=年龄
birthday=生日
userNameRequiredError=${getText('userName')}不能为空
pwdRequiredError=${getText('password')}不能为空
pwdLengthError=${getText('password')}的长度必在${minLength}和${maxLength}之间
ageValueError=${getText('age')}的长度必在${min}和${max}之间
birthdayError=${getText('birthday')}${birthday}的范围在${min}和${max}之间
${getText('userName')}是资源文件中已有的信息
${min}:是在LoginAction-validation.xml配置的参数信息
${birthday}取出单行文本<s:textfiled name="birthday">的信息
在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack" />
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -