我正在JSP中进行划分,我想对结果进行舍入 - 我该怎么做?
即
<c:set
var="expiry"
value="${(expire.time - now.time) / (60 * 1000)}"/>
Run Code Online (Sandbox Code Playgroud)
...我如何围绕结果?
谢谢,
我是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) 我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.
评估此测试的正确方法是什么?
我正在尝试将Freemarker与jQuery模板结合使用.
两个框架都使用美元符号/花括号来标识替换的表达式(或者在freemarker中调用它们,"插值"),例如${person.name}
.
因此,当我在该语法中定义带有表达式的jQuery模板时,Freemarker会尝试解释它们(并失败).
我试图逃避的各种组合${
顺序通过的Freemarker通过它无济于事- ,\${
,\$\{
,$\{
等.
在美元和卷曲(例如$<#-- -->{expression}
)DOES工作之间插入一个freemarker评论- 但我正在寻找一个更简洁和优雅的解决方案.
有没有更简单的方法来获得Freemarker模板输出字符序列${
?
我升级了我的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.
更好奇的是,它在升级之前如何运作?
我有以下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表达式?
我在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中的其他地方回显,那么它输出正常.
我在两个页面上都包含了核心标记库.
我有一个看起来像这样的类:
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中的所有隐式变量时,为什么我们有pageContext?
我的假设如下:如果我们使用EL表达式或JSTL,要访问或设置属性,我们需要pageContext.让我知道我是否正确.
这个问题类似于:
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文本框是否为空.
el ×10
jsp ×7
java ×5
jstl ×4
boolean ×1
eclipse ×1
freemarker ×1
jsf ×1
managed-bean ×1
math ×1
overloading ×1
rounding ×1
tomcat ×1