Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 使用c:set设置非字符串值_Jsf_Type Conversion_Jstl_El - Fatal编程技术网

Jsf 使用c:set设置非字符串值

Jsf 使用c:set设置非字符串值,jsf,type-conversion,jstl,el,Jsf,Type Conversion,Jstl,El,无论何时执行,{name}始终是一个字符串,如{name.class}所示 有没有办法在JSF/Facelets上下文中设置一个作用域属性,该属性是整数或长文本值?EL具有自动类型转换功能。这有一些很好的信息。然而,它的缺点是你不应该在意。只要param.month实际上是一个整数,您就应该能够执行以下操作 <c:set var="myInteger" value="${param.month}"/> <p> The value of myInteger is:<c

无论何时执行
{name}
始终是一个字符串,如
{name.class}
所示


有没有办法在JSF/Facelets上下文中设置一个作用域属性,该属性是整数或长文本值?

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}"/>


myInteger的值为:
执行乘法运算以显示类型正确:

在JSFXHTML页面上,我使用了一些技术来减少要键入的字符数

<!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}"
    />

我在xhtml文件的开头只写一次define
vC
JSTL变量,而不是键入超过100种类型的
options视图控制器
,每次使用
options视图控制器

其他优点:

  • xhtml代码更简短,可读性更强

  • 当我使用“粘贴/复制”在不同的 不能替换xhtml页面、
    vC
    变量


  • +1尽管我更正了您错误地将其称为JSTL而不是EL。JSTL是这里概述的标记库,EL是JSP/EL规范中概述的
    ${}
    东西:啊,我只需要使用一个表达式而不是一个文本,所以如果我使用value=“#{1}”,那么它将是一个很长的过程。我仍然不喜欢你不能控制它是长还是int。谢谢,只是一个输入错误。我的错。我离开爪哇岛已经有一段时间了。@GreenieMeanie:这是EL的本质,通常不会造成伤害。如果您想要类型安全,请使用JSF组件。如果它有问题,问一个新问题它有多痛,然后我们将提供解决方案/解决办法。顺便说一句,在JSF中使用JSTL并不总是被认为是一种好的做法。@Balus:整个JSP/JSF/EL/JSTL/Facelets事情都是一团糟,现在很难跟踪确切的术语和版本。。。