在一个Struts项目的一个JSP页面中,我有一个div的class是根据request中的某个值来选择,like this:
<div class="%{#request.flag==1 ? 'class-1' : 'class-2'>
这样可以吗?若不可以,应该怎么写呢?多谢各位了!
你可以借鉴一下这个
bgcolor="${sta.count%2 == 0?'#8FBC8F':'#E9EDF4'}"
class="${requestScope.flag==1?'class-1':'class-2'}" 试试这个看看
或是
jsp页面引入c标签 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
然后用if判断
直接用struts的标签不就行了,
<%@ taglib prefix="s" uri="/struts-tags"%>
//引入标签库
<%@ taglib prefix="s" uri="/struts-tags"%>
···
/s:if
····
/s:else
我真是醉了,怎么显示成那样了,引入标签库之后,用来判断,自己搜一下吧
<s:if test="#request.flag==1"></s:if>
完整版的:
页面开头引入struts标签库
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:if test="#request.flag==1">
···
</s:if>
<s:else>
···
</s:else>
这样,你可以搜一下struts标签的用法,很简单的
Struts标签库几乎可以代替JSTL的标签库:
‘#’符号相当于调用ActionContext.getContext();
// #session.name <==> ActionContext.getContext().getSession().get(“name”);
表达式语言主要有以下几大好处:
1. 避免(MyType) request.getAttribute()和myBean.getMyProperty()之类的语句,使页面更简洁;
2. 支持运算符(如+-*/),比普通的标志具有更高的自由度和更强的功能;
3. 简单明了地表达代码逻辑,使用代码更可读与便于维护。
Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:
1. 支持对象方法调用,如xxx.doSomeSpecial();
2. 支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 | 值名],例如:@java.lang.String@format('foo %s', 'bar')或@tutorial.MyConstant@APP_NAME;
3. 支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80;
4. 访问OGNL上下文(OGNL context)和ActionContext;
5. 操作集合对象。