我需要为属性写一个EL表达式,如下所示:
#{cc.attrs.appreciatedByCurrentUser ? (cc.attrs.count +'<br/>'+ (cc.attrs.count-1)) : ((cc.attrs.count+1) +'<br/>'+ cc.attrs.count)}
Run Code Online (Sandbox Code Playgroud)
现在的问题是,这会产生错误,因为字符串无法连接,就像我这样做.那我怎么能纠正这个呢?
我正在使用带有facelets的JSF 2.0.
我正在使用以下内联JavaScript解决问题
<script type="text/javascript">
var count=#{cc.attrs.count};
document.write(#{cc.attrs.appreciatedByCurrentUser} ? (count-1) +'<br/>'+count : count+'<br/>'+ (count+1));
</script>
Run Code Online (Sandbox Code Playgroud)
你能想到这个问题吗?
以下JSF代码包含两个单独的<c:if></c:if>.我们来看看吧.
<?xml version='1.0' encoding='UTF-8' ?>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:c="http://java.sun.com/jsp/jstl/core">
<h:head>
<title>JSF EL</title>
</h:head>
<h:body>
<h:form>
<c:set scope="request" var="row" property="x" value="10"/>
<c:if test="#{row==10}">
<h:outputLabel value="value = 10"/>
</c:if>
<c:if test="#{row==15}">
<h:outputLabel value="value = 15"/>
</c:if>
</h:form>
</h:body>
</html>
Run Code Online (Sandbox Code Playgroud)
它只是在运行时在JSF页面上显示value = 10.我需要<c:if></c:if>使用以下if-elseif-else(Java上下文)来表示上述内容.
if(row.equals(10))
{
//Do something...(JSF stuff)
}
else if(row.equals(15))
{
//Do something...(JSF stuff)
}
else
{
//Do something...(JSF stuff)
}
Run Code Online (Sandbox Code Playgroud)
如何使用JSF用表达式语言(EL)表示?
我有一个网络应用程序,我有不同的导航锚标签,如家庭,个人资料等.
我想要的是:
当我按下主页或个人资料等锚标签时.我只想确保当前用户在Tags/JSP页面中获取其信息.
我正在尝试的示例示例:
<a href="${pageContext.request.contextPath}/JSPAddress.jsp">Profile</a>
Run Code Online (Sandbox Code Playgroud) 有没有办法instanceof在EL 进行检查?
例如
<h:link rendered="#{model instanceof ClassA}">
#{errorMessage1}
</h:link>
<h:link rendered="#{model instanceof ClassB}">
#{errorMessage2}
</h:link>
Run Code Online (Sandbox Code Playgroud) 是否可以在Java EE页面(Facelets或JSP)中使用EL获取列表或数组中的特定元素,还是必须创建自定义EL方法?
我有以下表达式:
<af:outputText value="#{viewArticle.publish ? ('Publish on ' + viewArticle.publishDate + ' by ' + viewArticle.publishFirstName + ' ' + viewArticle.publishLastName) : 'Draft version'}"/>
Run Code Online (Sandbox Code Playgroud)
但我得到了
java.lang.NumberFormatException: For input string: "Publish on "
Run Code Online (Sandbox Code Playgroud)
我该如何加入字符串?
使用JSTL对表示URL路径(而不是请求参数)的String进行URL编码的最佳方法是什么?
<c:url value="/user/${user.name}"/>
Run Code Online (Sandbox Code Playgroud)
根据我发现的任何文件,这应该照顾它.但事实并非如此.它精美地编码参数(<c:url value="/user/${user.name}"><c:param name="section" value="employment 4u so good"/></c:url>)但我没有传递任何参数.如何安全地编码一个简单的URL,如上所述,而不用担心${user.name}会是什么?
我知道这并不难,但我没有运气.
我想fooList从JSP中提供的Servlet中创建.所以在Servlet中我有:
request.setAttribute("list", fooList);
RequestDispatcher dispatcher =
getServletContext().getRequestDispatcher("/myJsp.jsp");
dispatcher.forward(request, response);
Run Code Online (Sandbox Code Playgroud)
然后在JSP中,我希望:
<c:forEach var="post" items="${SOME_EL_HERE}">
<!-- stuff -->
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
哪个SOME_EL_HERE表达式检索我在其上设置的属性request.
有什么想法吗?我的偏好是不通过添加框架使一个简单的任务复杂化,但我对战略的变化持开放态度.
以下代码导致错误:
<c:set var="test" value="test1"/>
<%
String resp = "abc";
resp = resp + ${test}; //in this line I got an Exception.
out.println(resp);
%>
Run Code Online (Sandbox Code Playgroud)
我不是在scriptlet.why中使用表达式语言"$ {test}"吗?
我有一个在Tomcat 5.5上运行的JSP页面.我有以下代码:
<c:forEach var="i" begin="1" end="10" step="1">
<c:out value="${i}" />
<br />
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
我得到的输出是:
${i}
${i}
${i}
${i}
${i}
${i}
${i}
${i}
${i}
${i}
Run Code Online (Sandbox Code Playgroud)
我无法解决为什么forEach循环工作但输出不起作用.任何人都可以提供任何帮助都会很棒.