HTML标签能应用OGNL表达式吗?

在一个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判断


/c:if
根据数值不同显示不同div

直接用struts的标签不就行了,
<%@ taglib prefix="s" uri="/struts-tags"%>

···

/s:if

···

/s:else

//引入标签库
<%@ taglib prefix="s" uri="/struts-tags"%>

···
/s:if

····
/s:else

我真是醉了,怎么显示成那样了,引入标签库之后,用来判断,自己搜一下吧

<s:if test="#request.flag==1"></s:if>

/s:else



完整版的:
页面开头引入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. 操作集合对象。