gpt4 book ai didi

java - 如何在 JSF 2 的值表达式和方法表达式中传递参数?

转载 作者:搜寻专家 更新时间:2023-10-31 19:57:00 24 4
gpt4 key购买 nike

这是 Oracle JavaEE 6 教程文档中关于在 JSF 2 中传递值表达式和方法表达式中的参数的引用。

Parameters are supported for both value expressions and method expressions. In the following example, which is a modified tag from guessNumber application, a random number is provided as an argument rather than from user input to the method call:

<h:inputText value="#{userNumberBean.userNumber('5')}"> 

上面的例子使用了一个值表达式。

这是默认的:

<h:inputText value="#{userNumberBean.userNumber}">

bean 类-

import java.util.Random;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class UserNumberBean {

Integer randomInt = null;
Integer userNumber = null;

public UserNumberBean() {
Random randomGR = new Random();
randomInt = new Integer(randomGR.nextInt(10));
System.out.println("Duke's number: " + randomInt);
}

public void setUserNumber(Integer user_number) {
userNumber = user_number;
}

public Integer getUserNumber() {
return userNumber;
}

}

以下表达式没有将 5 作为参数传递给 inputText:

<h:inputText value="#{userNumberBean.userNumber('5')}">

它实际上会在运行时导致错误。

我的问题:我该如何实现??

最佳答案

您不需要在您提供的示例中传递参数。

在这种情况下,会在您的支持 bean 上自动调用 getter 和 setter。

以下代码将调用 getUserNumber 和/或 setUserNumber 来检索和/或修改 inputText 组件的值:

<h:inputText value="#{userNumberBean.userNumber}">

用户输入的表单值将作为参数传递给setUserNumber


要将参数传递给支持 bean 方法,您可以这样做:

<h:commandButton  action="#{userNumberBean.displayAlert('Hey')}"    value="Say Hey"/>
<h:commandButton action="#{userNumberBean.displayAlert('Later')}" value="Say Bye"/>

这将调用如下所示的方法:

public String displayAlert(String someText)


正如 Bhesh Gurung 的回答所暗示的,您可以在构造函数中将 userNumber 默认设置为 5。

您也可以使用其中一种方法 suggested here应用默认值。

关于java - 如何在 JSF 2 的值表达式和方法表达式中传递参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11945145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com