每当做<c:set var="emp"><cq:text property="empid" /></c:set>
总是给我字符串。但是var假设返回'int'。有没有得到'int'而不是'string'
由于
答案 0 :(得分:3)
您可以使用<fmt:parseNumber>
标记,该标记已在CQ5中提供(<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
库由global.jsp引用),这是避免scriptlet的好事。此示例详见http://www.tutorialspoint.com/jsp/jstl_format_parsenumber_tag.htm:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>JSTL fmt:parseNumber Tag</title>
</head>
<body>
<h3>Number Parsing:</h3>
<c:set var="balance" value="1250003.350" />
<fmt:parseNumber var="i" type="number" value="${balance}" />
<p>Parsed Number (1) : <c:out value="${i}" /></p>
<fmt:parseNumber var="i" integerOnly="true"
type="number" value="${balance}" />
<p>Parsed Number (2) : <c:out value="${i}" /></p>
</body>
</html>
这将产生以下结果:
号码解析:
解析数(1):1250003.35
解析数(2):1250003
答案 1 :(得分:0)
您正在使用<cq:text>
标记,该标记本身就是一个字符串。请尝试以下方法:
<c:set var="emp" value="${properties['empid']}"/>
如果属性是CRX中的数字,那么它也应该返回一个数字。否则,您需要使用scriptlet来读取属性类型safe:
<%
int empid = properties.get("empid", Integer.class);
%>