Используйте c: установить, чтобы установить не строковое значение - PullRequest
6 голосов
/ 17 марта 2010

Всякий раз, когда вы делаете <c:set var="name" value="1"/>, #{name} всегда является строкой, о чем свидетельствует #{name.class}.

Есть ли какой-либо способ в контексте JSF / Facelets, чтобы установить атрибут области, который является литералом типа Integer или Long?

Ответы [ 2 ]

4 голосов
/ 17 марта 2010

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}"/>
0 голосов
/ 16 августа 2018

На странице 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}"
    />

Вместо ввода optionsViewController более 100 типов я пишу определение только vC переменной JSTL один раз в начале моего файла xhtml и использую ее каждый раз, когда использую optionsViewController.

ДРУГИЕ преимущества:

  1. Код xhtml более короткий и более читаемый.

  2. Когда я копирую несколько строк кода, используя вставку / копирование между различными xhtml страниц, vC переменная не должна заменяться!

...