标签: el

如何在JSTL中舍入数字?

我正在JSP中进行划分,我想对结果进行舍入 - 我该怎么做?

<c:set
  var="expiry"
  value="${(expire.time - now.time) / (60 * 1000)}"/>
Run Code Online (Sandbox Code Playgroud)

...我如何围绕结果?

谢谢,

math jsp jstl el rounding

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

JSP中的表达式语言不起作用

我是JSP新手并使用Expression语言.我正在使用Eclipse Galileo 2.5版和Tomcat 6服务器.我只是想问一下,我的简单表达式语言不会像我写的那样打印${1>2},假设它给出了假,但${1>2}它只在呈现页面时显示 .但是当我使用<c:out value="${1>2}"/>它时,正确打印错误.我认为标签库存在问题.请建议我这样做的原因我给出了一个示例代码,以便您可以了解我的错误: -

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
                                 "http://www.w3.org/TR/html4/loose.dtd">


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Expression Language Example</title>
</head>
<body>

Is 1 greater than 2 using cout  :<c:out value="${1>2}"/>

Is 1 greater than 2 without using cout: ${1>2}
</body>
</html> 
Run Code Online (Sandbox Code Playgroud)

根据答案更新,这里有更多信息:

我正在展示我的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:jsp="http://java.sun.com/xml/ns/javaee/jsp" 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" id="WebApp_ID" …
Run Code Online (Sandbox Code Playgroud)

java jsp el

30
推荐指数
3
解决办法
6万
查看次数

在JSP/JSTL/EL中访问集合的大小

services在JSP页面中调用了一个List变量.如果列表中有多个元素,我需要在页面中添加一些标记.

我想做的是......

<c:if test="${services.size() gt 1}">
  <!-- markup... -->
</c:if>
Run Code Online (Sandbox Code Playgroud)

但是你不能在EL中调用Java对象的方法(我想这可能是364823782时间,我后悔这个事实).您只能通过删除具有getName()方法的User类的'get',例如$ {user.name}来访问Java对象上的getter.

评估此测试的正确方法是什么?

java jsp jstl el

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

如何在Freemarker中输出$ {expression}而不解释它?

我正在尝试将Freemarker与jQuery模板结合使用.

两个框架都使用美元符号/花括号来标识替换的表达式(或者在freemarker中调用它们,"插值"),例如${person.name}.

因此,当我在该语法中定义带有表达式的jQuery模板时,Freemarker会尝试解释它们(并失败).

我试图逃避的各种组合${顺序通过的Freemarker通过它无济于事- ,\${,\$\{,$\{等.

在美元和卷曲(例如$<#-- -->{expression})DOES工作之间插入一个freemarker评论- 但我正在寻找一个更简洁和优雅的解决方案.

有没有更简单的方法来获得Freemarker模板输出字符序列${

freemarker el jquery-templates

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

EL支持重载方法吗?

我升级了我的Java EE Web应用程序以使用更新的PrimeFaces版本,突然在PrimeFaces commandlink的action属性中调用重载的bean方法不再起作用.我试图使用JSF默认的commandlink来测试它,这个也没用.

方法签名如下:

public void updateA(B b);
public void updateA(A a);
Run Code Online (Sandbox Code Playgroud)

它总是试图将A转换为B.

更好奇的是,它在升级之前如何运作?

overloading el

29
推荐指数
1
解决办法
3425
查看次数

表达式语言和Eclipse警告:"items"不支持运行时表达式

我有以下JSP:

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<%@ page isELIgnored="false"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><c:out value="${it.title}"/></title>
    </head>
    <body>
        <c:forEach var="speaker" items="${it.speakers}" varStatus="stat">
            <ul>
                <li><c:out value="${speaker.person.firstName}" /> <c:out value="${speaker.person.lastName}" />, <c:out value="${speaker.person.address.city.zip}" /> <c:out value="${speaker.person.address.city.name}" /></li>
            </ul> 
        </c:forEach>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

Eclipse在我的代码中警告我关于EL表达式的每个实例:

Warning [line 10]: "value" does not support runtime expressions
Warning [line 13]: "items" does not support runtime expressions
...
Run Code Online (Sandbox Code Playgroud)

但事实并非如此,EL会被服务器正确评估.

任何人都可以向我暗示正确的方向为什么eclipse会警告我那些EL表达式?

java eclipse jsp jstl el

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

如何将参数传递给jsp:include通过c:set?JSP中变量​​的范围是什么?

我在welcome.jsp上有这个

<c:set var="pgTitle" value="Welcome"/>
<jsp:include page="/jsp/inc/head.jsp" />
Run Code Online (Sandbox Code Playgroud)

这在head.jsp中:

<title>Site Name - ${pgTitle}</title>
Run Code Online (Sandbox Code Playgroud)

但变量是空白的,输出仅仅是

Site Name -
Run Code Online (Sandbox Code Playgroud)

我看过很多文章,我无法弄清问题是什么.如果我${pgTitle}在同一个welcome.jsp中的其他地方回显,那么它输出正常.

我在两个页面上都包含了核心标记库.

java jsp jstl el

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

javax.el.PropertyNotFoundException:属性'foo'在类型java.lang.Boolean上不可读

我有一个看起来像这样的类:

public class ScoreDefinition {

    protected Boolean primary;

    public Boolean isPrimary() {
        return primary;
    }

    public void setPrimary(Boolean value) {
        this.primary = value;
    }

}
Run Code Online (Sandbox Code Playgroud)

我试图primary在EL中访问它的属性,如下所示:

<c:forEach var="score" items="${scores}">
    <input type="checkbox"
           value="${score.primary}"
           name="someName"
           class="textField"/>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)

但我得到了例外:

javax.el.PropertyNotFoundException: Property 'primary' not readable on type java.lang.Boolean
    at javax.el.BeanELResolver$BeanProperty.read(BeanELResolver.java:280)
    at javax.el.BeanELResolver$BeanProperty.access$000(BeanELResolver.java:230)
    at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
    at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_c_005fforEach_005f2(projectBlocks_jsp.java:806)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_c_005fif_005f2(projectBlocks_jsp.java:709)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspx_meth_form_005fform_005f0(projectBlocks_jsp.java:245)
    at org.apache.jsp.WEB_002dINF.views.administer.projectBlocks_jsp._jspService(projectBlocks_jsp.java:150)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) …
Run Code Online (Sandbox Code Playgroud)

jsp boolean el propertynotfoundexception

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

为什么在JSP中需要pageContext?

当我们可以访问JSP中的所有隐式变量时,为什么我们有pageContext

我的假设如下:如果我们使用EL表达式或JSTL,要访问或设置属性,我们需要pageContext.让我知道我是否正确.

java jsp el

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

如何以编程方式设置-Dorg.apache.el.parser.COERCE_TO_ZERO = false

这个问题类似于:

jsf:绑定到UI中的inputtext的整数属性在提交时设置为零

但我对解决方案并不完全满意.上下文是相同的:我有一个需要Integer值的Web表单.如果文本框留空,我希望我的整数字段为'null',而EL解析器会自动将我的id字段设置为'0'.

我可以通过在本地Tomcat VM中设置JVM参数来解决问题:

-Dorg.apache.el.parser.COERCE_TO_ZERO = FALSE

但是,这对我们客户的机器不起作用.是否可以在"代码内"设置/更改此JVM参数.

更新:我发现这是请求,但如果其他人有任何其他解决方法,我也想听到.

https://issues.apache.org/bugzilla/show_bug.cgi?id=48813

更新2:我无法将值从"0"更改为"null",因为我的应用程序应将"0"视为实际ID.所以我需要在运行时知道id文本框是否为空.

jsf tomcat el jvm-arguments managed-bean

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