我知道java中有一个三元表达式。就是那个 (表达式1)?(表达式2):(表达式3)的这个。
问题是:
不知道能不能在EL表达式中写三元表达式.
${(表达式1)?(表达式2):(表达式3)} 这么写可以么?
问题是:
不知道能不能在EL表达式中写三元表达式.
${(表达式1)?(表达式2):(表达式3)} 这么写可以么?
解决方案 »
- jsp里面嵌套jsp
- 哪位有ExtJs 与java 数据交互的学习资料?小弟正在学习中……
- 关于struts+hibernate系统登录模块的问题
- 急!!! 我自己在做尝试jsp modul1 和jsp modul2 遇到了一个问题!
- 各位高手看看这个bean有什么问题,不知道为什么jsp出错阿!
- 急!!! 如何一次提交多条记录(字段是动态的)?????
- 急等:在jsp应用中,添加数据到数据库中
- 关于<form ... enctype="multipart/form-data">action后的取值?帮一把!谢先了!
- 急!!!!java的环配置问题!
- 用spring注入的时候出现这种错误,在网上查了好多都是因为命名不规范导致的spring注入错误,但是我感觉我这没错啊,以前也这么写过都没错。
- 求jsp简单论坛源码
- jacob操作word问题
function.java
package com.lhcard.common;/**
* 定义EL自定义函数
*
* @author:陈伟
* @date:2008-5-15
*
*/
public class function { /**
* 获取一个字符串的长度
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @return int
*/
public static int getLen(String str) {
return str.length();
} /**
* 截取字符串
*
* @author 陈伟
* @date 2008-5-15
* @param str
* @param start
* @param end
* @return String
*/
public static String substr(String str, int start, int end) {
return str.substring(start, end);
} /**
* 两数相除获取整数结果
*
* @author 陈伟
* @date 2008-5-15
* @param first
* @param second
* @return int
*/
public static int chufa(int first, int second) {
return first / second;
}
}mytag.tld
<?xml version="1.0" encoding="UTF-8"?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<tlib-version>1.0</tlib-version>
<short-name>len</short-name>
<function>
<description>calculate string length</description><!-- 对这个EL方法的描述 -->
<name>getLen</name><!-- 调用EL方法的名称 -->
<function-class>com.lhcard.common.function</function-class>
<function-signature>
int getLen(java.lang.String)
</function-signature>
<example>${len:getLen(str)}</example><!-- 例如 -->
</function> <function>
<description>substring</description>
<name>substr</name>
<function-class>com.lhcard.common.function</function-class>
<function-signature>
java.lang.String substr(java.lang.String,int,int)
</function-signature>
</function> <function>
<description>chufa</description>
<name>chufa</name>
<function-class>com.lhcard.common.function</function-class>
<function-signature>int chufa(int,int)</function-signature>
</function>
</taglib>test.jsp
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="/WEB-INF/mytag.tld" prefix="len"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<c:set value="111111111111111111111111" var="str"></c:set>
<c:if test="${len:getLen(str)>10}">
<c:out value="${len:substr(str,0,5)}"></c:out>
</c:if>
${len:chufa(5,3) }
</body>
</html>
看来不能想当然
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<body>
<c:set var="a" value="5"></c:set>
<c:set var="b" value="4"></c:set>
${a>b?"a":"bb" }
${5>4?"a":"b" }
</body>
</html>
参看 http://blog.csdn.net/caoyinghui1986/archive/2008/04/02/2243470.aspx
3楼的测试也是对的。