标签: el

评估空或空JSTL c标记

如何String使用c标签验证a 是空还是空JSTL

我有一个名称变量,var1我可以显示它,但我想添加一个比较器来验证它.

<c:out value="${var1}" />
Run Code Online (Sandbox Code Playgroud)

我想验证它是null还是空(我的值是字符串).

jsp jstl el

384
推荐指数
5
解决办法
69万
查看次数

为什么JSF多次调用getter

假设我像这样指定一个outputText组件:

<h:outputText value="#{ManagedBean.someProperty}"/>
Run Code Online (Sandbox Code Playgroud)

如果我在someProperty调用getter for时打印一条日志消息并加载页面,那么注意每个请求多次调用getter是很容易的(在我的情况下发生了两次或三次):

DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
DEBUG 2010-01-18 23:31:40,104 (ManagedBean.java:13) - Getting some property
Run Code Online (Sandbox Code Playgroud)

如果someProperty计算的值很昂贵,这可能是一个问题.

我用Google搜索了一下,认为这是一个已知问题.一个解决方法是包括一个检查,看看它是否已经计算过:

private String someProperty;

public String getSomeProperty() {
    if (this.someProperty == null) {
        this.someProperty = this.calculatePropertyValue();
    }
    return this.someProperty;
}
Run Code Online (Sandbox Code Playgroud)

这个问题的主要问题是你得到大量的样板代码,更不用说你可能不需要的私有变量了.

这种方法有哪些替代方案?没有那么多不必要的代码,有没有办法实现这一目标?有没有办法阻止JSF以这种方式行事?

感谢您的输入!

getter performance jsf el

253
推荐指数
4
解决办法
9万
查看次数

JSP EL,JSF EL和Unified EL之间的区别

我想知道Expression Languages(EL)之间的细节差异.有JSP EL,JSF EL和Unified EL.

我想知道EL背后的历史以及Java EE应用程序中使用的最新EL.它是最新版本中所有视图技术的EL通用吗?

jsf jsp el java-ee

122
推荐指数
2
解决办法
2万
查看次数

识别并解决javax.el.PropertyNotFoundException:Target Unreachable

当尝试在EL中引用托管bean时#{bean.entity.property},有时会javax.el.PropertyNotFoundException: Target Unreachable抛出异常,通常是在设置bean属性时,或者要调用bean操作时.

似乎有五种不同的消息:

  1. 目标无法访问,标识符'bean'已解析为null
  2. 目标无法访问,'entity'返回null
  3. 目标无法访问,'null'返回null
  4. 目标无法访问,''0'返回null
  5. 目标无法访问,'BracketSuffix'返回null

这些都意味着什么?它们是如何引起的,它们应该如何解决?

jsf el cdi managed-bean propertynotfoundexception

117
推荐指数
2
解决办法
11万
查看次数

如何在JSF表达式语言中获得列表的长度?

如何获得ArrayList使用JSF EL表达式的长度?

#{MyBean.somelist.length}
Run Code Online (Sandbox Code Playgroud)

不起作用.

java jsf jsp jstl el

116
推荐指数
4
解决办法
12万
查看次数

如何在EL中引用常量?

如何在JSP页面上引用EL常量?

我有一个Addresses名为常量的接口URL.我知道我可以通过以下方式用scriplet引用它:<%=Addresses.URL%>,但是我如何使用EL来做到这一点?

jsp constants el

102
推荐指数
7
解决办法
7万
查看次数

使用JSTL forEach循环的varStatus作为ID

我想使用来自JSTL forEach循环的计数,但我的代码似乎不起作用.

<c:forEach items="${loopableObject}" var="theObject" varStatus="theCount">
    <div id="divIDNo${theCount}">
    </div>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

产生

<div id="divIDNojavax.servlet.jsp.jstl.core.LoopTagSupport$1Status@5570e2" >
Run Code Online (Sandbox Code Playgroud)

java jsp jstl el

100
推荐指数
3
解决办法
22万
查看次数

如何在一个<c:if>中检查两个条件?

如何在一个中检查两个条件<c:if>?我试过这个,但它引发了一个错误:

<c:if test="${ISAJAX == 0} && ${ISDATE == 0}"> 
Run Code Online (Sandbox Code Playgroud)

jstl el

95
推荐指数
3
解决办法
21万
查看次数

如何检查EL中的布尔条件?

它是否正确?

<c:if test="${theBooleanVariable == false}">It's false!</c:if>
Run Code Online (Sandbox Code Playgroud)

或者我可以这样做吗?

<c:if test="${!theBooleanVariable}">It's false!</c:if>
Run Code Online (Sandbox Code Playgroud)

java jsp el

86
推荐指数
3
解决办法
16万
查看次数

EL通过Integer键访问映射值

我有一个由Integer键入的Map.使用EL,我如何通过其键访问值?

Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");
Run Code Online (Sandbox Code Playgroud)

我认为这会有效,但它没有(地图已经在请求的属性中):

<c:out value="${map[1]}"/>
Run Code Online (Sandbox Code Playgroud)

跟进:我追查了问题.显然${name[1]},使用数字进行地图查找Long.我想通了这一点,当我换HashMapTreeMap和收到的错误:

java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Long
Run Code Online (Sandbox Code Playgroud)

如果我将地图更改为:

Map<Long, String> map = new HashMap<Long, String>();
map.put(1L, "One");
Run Code Online (Sandbox Code Playgroud)

然后${name[1]}返回"一".那是什么?为什么<c:out>将数字视为一个长数.对我来说似乎违反直觉(因为int比长期更常用).

所以我的新问题是,是否有EL符号通过Integer值访问地图?

java jsp jstl el

85
推荐指数
3
解决办法
15万
查看次数