标签: el

null检查jsf表达式语言

请参阅此表达语言

styleClass="#{obj.validationErrorMap eq null ? ' ' :  
     obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
Run Code Online (Sandbox Code Playgroud)

即使地图为空,highlight_row也会应用样式.

所以我改为

styleClass="#{empty obj.validationErrorMap ? ' ' :  
     obj.validationErrorMap.contains('key')?'highlight_field':'highlight_row'}"
Run Code Online (Sandbox Code Playgroud)

即便如此,highlight_row正在应用.
如果地图是empty OR null我不想要任何样式应用.

有帮助吗?和这种行为的原因?

java jsf el

51
推荐指数
1
解决办法
11万
查看次数

如何在JSF中测试枚举相等?

是否有可能在JSF中测试枚举相等性?

例如当stuffenum Stuff:

<h:outputText value="text" rendered="#{mrBean.stuff == mrsBean.stuff}"/>
Run Code Online (Sandbox Code Playgroud)

jsf enums el

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

如何创建自定义EL函数来调用静态方法?

我是JSF 2的新手.我的问题是关于BalusC对这个问题的回答jsf2 ajax基于请求参数更新部件 我尝试了kickstart代码BalusC发布并且我遇到了EL解析错误:

 /nameofpage.xhtml @12,64 rendered="#{bean.panels.contains('u1')}"
 Error Parsing: #{bean.panels.contains('u1')}
Run Code Online (Sandbox Code Playgroud)

我想这是因为我没有运行一个支持Servlet 3.0/EL 2.2的容器,并且根据Servlet 3.0规范声明了/WEB-INF/web.xml.我正在使用Tomcat 6.

BalusC在他的回答中建议创建一个自定义EL功能.但是如何使用自定义EL功能完成此操作?或者只需配置我项目的某些部分即可解决这个问题?

以下是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>    
  </context-param>      
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>
Run Code Online (Sandbox Code Playgroud)

jsf static-methods function el jsf-2

49
推荐指数
1
解决办法
3万
查看次数

如何比较EL表达式语言中的两个对象变量?

我正在创建所有语言的下拉列表.列表的默认语言选择将由用户添加的信息确定:

<select>
    <c:forEach items="${languages}" var="lang">
        <c:choose>
            <c:when test="${lang}.equals(${pageLang})">
                <option value="${lang}" selected>${lang}</option>
            </c:when>
            <c:otherwise>
                <option value="${lang}">${lang}</option>
            </c:otherwise>
        </c:choose>
    </c:forEach>
</select>
Run Code Online (Sandbox Code Playgroud)

.equals在EL中似乎不存在.看了一下这里建议我编写自己的函数,然后导入并使用它.因为这只是针对此页面的一个小小的事情,我不想为此开始创建库等.我也不想开始为servlet创建专家对象,并在其中返回这些额外信息.

我唯一能想到的就是从servlet返回整个选项行的实际html,而不仅仅是语言字符串,但这让我觉得很难看,所以我希望有一个更优雅的解决方案.

快速修复EL中两个字符串的最佳方案是什么?

J2EE 1.4教程

jsp jstl el operators object-comparison

44
推荐指数
1
解决办法
12万
查看次数

如何使用JSTL/EL从JSP调用参数化方法

如何使用JSTL/EL从JSP调用Java类中定义的参数的Java方法.该方法返回数组.可以使用任何返回值.

jsp jstl el parameter-passing methodexpression

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

如何调试JSF/EL

如何在JSF页面中调试EL?我想看变量值,函数调用等等.最好的解决方案是eclipse插件,但任何其他可能性都比猜测"为什么这个表达式无法正确呈现?"更好.

eclipse debugging jsf el jsf-2

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

我应该选择==或eq来比较EL中的字符串吗?

==eq使用EL给出相同的结果来进行我的字符串比较测试:

    <c:if test="${person.sokande_i == 'endast_usa'}">Endast USA</c:if>
    <c:if test="${person.sokande_i == 'alla'}">Alla länder</c:if>
    <c:if test="${person.sokande_i == 'alla_utom_usa'}">Alla utom USA</c:if>
Run Code Online (Sandbox Code Playgroud)

我应该用eq吗?是==仅整数?但它也适用于字符串.AFAIK ==测试hashCodes是否相等并且eq意味着"有意义的不同".

另一个问题是==eq做同样的事情.

这里没有区别吗?与我说的不同之==处在于:查看hashCode并eq查看实现equals(...).

java el java-ee websphere-8

44
推荐指数
3
解决办法
9万
查看次数

检查表达式语言中是否存在参数

<c:if test="${param.username}" >
</c:if>
Run Code Online (Sandbox Code Playgroud)

如何检查param.username是否存在?

parameters jsp jstl el

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

JSTL/EL中的三元运算符

JSTL的以下标记可用于将值设置为请求范围中的变量.

<c:set var="value" scope="request" value="someValue"/>
Run Code Online (Sandbox Code Playgroud)

我想要有条件地检查,如果value设置的变量是否为空,并显示相应的结果,如下所示,使用<c:when>...</c:when>.

<c:choose>
    <c:when test="${not empty value}">
        <c:out default="None" value="${value}"/>
    </c:when>
    <c:otherwise>
        <c:out default="None" value="None"/>
    </c:otherwise>
</c:choose>
Run Code Online (Sandbox Code Playgroud)

我想使用三元表达式来减少代码行,比如

<c:out default="None" value="${not empty value ? value : 'None'}"/>
Run Code Online (Sandbox Code Playgroud)

它被评估,因为它实际上意味着,但如果我交换表达式的顺序,如,

<c:out default="None" value="${empty value ? 'None' : value}"/>
Run Code Online (Sandbox Code Playgroud)

然后是语法错误指示,

"$ {空值?'无':值}"包含无效表达式:javax.el.E​​LException:错误解析:$ {空值?'无':值}

那么为什么会这样呢?


我正在使用该JSTL 1.1库,包含以下taglib,

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
Run Code Online (Sandbox Code Playgroud)

jsp jstl el ternary-operator conditional-operator

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

在JavaScript文件中混合使用JSF EL

有没有办法让包含JavaScript文件的表达式语言(EL)表达式由JSF评估?

我希望Seam可以解决这个问题,但到目前为止还没有运气.我想要的只是能够在我的JavaScript函数中使用本地化的消息,这些消息在页面之间共享.

javascript jsf seam el

40
推荐指数
1
解决办法
3万
查看次数