Pergunta

Eu sei que você pode usar a tag <jsp:useBean> a objetos instanciar dentro JSPs sem recorrer ao código scriptlet. No entanto, eu gostaria de instanciar um Integer que valor é o resultado de uma expressão EL, algo como:

<jsp:useBean id="total" class="java.lang.Integer">
    <jsp:setProperty name="amount" value="${param1 + param2}"/>
</jsp:useBean>

É claro que este trabalho não vai, porque objetos inteiros não têm uma propriedade chamada 'quantidade', a única forma o seu valor pode ser definido é através de um parâmetro de construtor (objetos ou seja Inteiros são imutáveis). Existe alguma maneira para instanciar tal objeto e defini-lo de valor sem o uso de código de scriptlet?

Obrigado, Don

Foi útil?

Solução

<c:set var="amount" value="${param1 + param2}" scope="page" />

Outras dicas

wrappers primitivos também têm nenhum construtor padrão para que você não pode mesmo initialize que forma.

Eu não estou certo de que EL é suposto ser usado dessa forma. É mais de um idioma de modelo. Não está claro qual a vantagem que você está tentando fazer tem sobre algo como:

<%
  Integer total = new Integer(param1 + param2);
%>

E, em seguida, apenas usando <% =% total> onde você precisa o valor a ser emitidos. Você também pode fazer:

<%
  pageContext.setAttribute("total", new Integer(param1 + param2));
%>

Se você deseja que o valor seja no âmbito página como useBean vai fazer.

Se você tem um feijão, você pode simplesmente atualizar o feijão com param1 e 2? Criar um método, setAmount (param1, param2), e defini-lo antes de usar getAmount (), que é o que o feijão vai chamada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top