6

每当做<c:set var="name" value="1"/>时,#{name}总是一个字符串,如#{name.class}.

有没有办法在 JSF/Facelets 上下文中设置一个范围属性,它是一个整数或长文本值?

4

2 回答 2

4

EL 有自动类型转换。这篇文章有一些很好的信息。但是,缺点是您不应该在意。只要 param.month 实际上是一个整数,您就应该能够执行以下操作。

<c:set var="myInteger" value="${param.month}"/>
<p>
The value of myInteger is:<c:out value="${myInteger}"/>
Perform a multiplication operation to show that the type is correct:
<c:out value="${myInteger *2}"/>
于 2010-03-17T17:43:53.183 回答
0

在 JSF xhtml 页面上,我使用技术来减少要输入的字符数!

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      >

    <!-- JSF ViewController of this page -->
    <c:set var="vC" value="#{optionsViewController}"/> 
...
    <h:outputText 
        value="#{vC.txtOriginator.value}"  
        rendered="#{vC.txtOriginator.protected}"
        />

代替

<h:outputText 
    value="#{optionsViewController.txtOriginator.value}"  
    rendered="#{optionsViewController.txtOriginator.protected}"
    />

我没有输入optionsViewController100 多种类型,而是vC在我的 xhtml 文件的开头编写了一次只定义 JSTL 变量,并在每次使用optionsViewController.

其他优点:

  1. xhtml 代码更短,更易读。

  2. 当我在不同的 xhtml 页面之间使用粘贴/复制复制一些代码行时,vC不得替换变量!

于 2018-08-16T12:09:30.467 回答