1. 条件标签 JSTL
<
c:
if
test
=
"
${user.password == 'hello'}
"
>
<
c:choose
>
<
c:when test
=
"
${user.age <= 18}
"
>
<
font color
=
"
blue
"
/>
</
c:when
>
<
c:when test
=
"
${user.age <= 30 && user.age > 18}
"
>
<
font color
=
"
red
"
/>
</
c:when
>
<
c:otherwise
>
<
font color
=
"
green
"
/>
</
c:otherwise
>
</
c:choose
>
</
c:
if
>
STRUTS2:
<
s:
if
test
=
"
#user.age <= 18
"
>
<
font color
=
"
blue
"
/>
</
s:
if
>
<
s:elseif test
=
"
#user.age <= 30 && user.age > 18
"
>
<
font color
=
"
red
"
/>
</
s:elseif
>
<
font color
=
"
green
"
/>
</
s:
else
>
2. 迭代标签
JSTL:
<
c:forEach var
=
"
user
"
items
=
"
${users}
"
>
<
c:out value
=
"
${user.userName}
"
/>
</
c:forEach
>
<!--
迭代固定次数
-->
<
c:forEach var
=
"
i
"
begin
=
"
1
"
end
=
"
10
"
step
=
"
3
"
>
<
c:out value
=
"
${i}
"
/>
</
c:forEach
>
<!--
这种循环相当于for(
int
i
=
1
; i
<
10
; i
++
), 其中step是指迭代的步长,默认为1.
-->
struts2:
<
s:iterator value
=
"
#users
"
status
=
"
stuts
"
>
<
s:
if
test
=
"
#stuts.odd == true
"
>
<!--
判断是否为奇数行
-->
<
s:property value
=
"
userName
"
/>
</
s:
if
>
<
s:
else
>
<
s:property value
=
"
passWord
"
/>
</
s:
else
>
</
s:iterator
>
3. URL相关标签 JSTL:
<!--
绝对路径
-->
<
c:
import
url
=
"
http://127.0.0.1:8080/hello/hello.jsp
"
/>
<!--
相对路径
-->
<
c:
import
url
=
"
hello.jsp
"
/>
<!--
Encode
-->
<
a href
=
"
<c:url value='hello.jsp'><c:param name='userName' value='cyanbomb' /></c:url>
"
></
a
>
<!--
传递参数到指定的URL
-->
<
c:
import
url
=
"
hello.jsp
"
charEncoding
=
"
gb2312
"
>
<
c:param name
=
"
userName
"
value
=
"
cyanbomb
"
/>
</
c:
import
>
<!--
URL重定向
-->
<
c:redirect url
=
"
${myurl}
"
/>
<!--
构造URL
-->
<
c:url value
=
"
myurl
"
var
=
"
hello.jsp
"
scope
=
"
session
"
>
<
c:param name
=
"
userName
"
value
=
"
cyanbomb
"
/>
</
c:url
>
Struts2:
<
a href
=
'
<s:url value="/hello.jsp" />
'
>
Hello
</
a
><
br
/>
<
s:url id
=
"
url
"
value
=
"
/hello.jsp
"
>
<
s:param name
=
"
name
"
>
cyanbomb
</
s:param
>
</
s:url
>
<
s:a href
=
"
%{url}
"
>
Hello
</
s:a
>
解除的疑问,list遍历问题
像这样一个list,里面有3条记录,每条记录包含两个对象,我把结果集(lstRooms)request到了页面,想遍历显示RrmRooms里的id,和RrmRoomType里的name. 我用JSTL实现如下:
<
table
>
<
c:forEach var
=
"
rm
"
items
=
"
${lstRooms}
"
>
<
tr
>
<
td
>
${rm[
0
].id}
</
td
>
<
td
>
${rm[
1
].name}
</
td
>
<
tr
>
</
c:forEach
>
</
table
>
STRUTS2实现如下:
<
table
>
<
s:iterator value
=
"
#lstRooms
"
status
=
"
stat
"
>
<
tr
>
<
td
>
<
s:property value
=
"
#lstRooms[#stat.index][0].id
"
/>
</
td
>
<
td
>
<
s:property value
=
"
#lstRooms[#stat.index][1].name
"
/>
</
td
>
<
tr
>
</
s:iterator
>
</
table
>