我正在努力学习如何在Java Bean中调用getter / setter方法。我没有看到教程(https://netbeans.org/kb/docs/web/jsf20-intro.html)调用setter方法的示例,但显然已经设置了值。
结果,我无法确保调用我的setter方法。例如......
@Named(value = "someJavaBean")
@SessionScoped
public class someJavaBeanSerializable {
String webServiceResponse;
public void setWebServiceResponse() {
this.webServiceResponse = "Just a test";
}
public String getWebServiceResponse() {
this.setWebServiceResponse();
return this.webServiceResponse;
}
public someJavaBean() {
System.out.println("You are in someJavaBean");
}
}
看来我必须手动调用setWebSErviceResponse()才能运行setter,这是其他语言的典型特征。我很乐意这样做,但根据我所读到的内容,我不确定这是否正确。
任何帮助或澄清将不胜感激。
谢谢,
答案 0 :(得分:2)
Java bean定义行为by convention:
getWebServiceResponse()
和setWebServiceResponse(String response)
。final
字段,那么这会改变(你只能有一个吸气剂)。setter中没有参数违反了这一惯例。
另外,在你的getter中调用你的setter是不好的风格 - setter背后的想法是它只设置一个字段,而getter只返回该字段内的任何值 - 即使它是{{1} }。我也会删除你的二传手的电话。
最后,null
无效 - 您可能打算返回public someJavaBean()
。
答案 1 :(得分:1)
你的setter方法需要一个参数:
public void setWebServiceResponse(String webServiceResponse) {
this.webServiceResponse = webServiceResponse;
}
答案 2 :(得分:0)
抱歉要密集。在教程(https://netbeans.org/kb/docs/web/jsf20-intro.html)的以下代码中,名为?
的setter在哪里@ManagedBean (name="UserNumberBean")
@SessionScoped
public class UserNumberBean implements Serializable{
Integer randomInt;
Integer userNumber;
String response;
public String getResponse() {
if ((userNumber != null) && (userNumber.compareTo(randomInt) == 0)) {
//invalidate user session
FacesContext context = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) context.getExternalContext().getSession(false);
session.invalidate();
return "Yay! You got it!";
} else {
return "<p>Sorry, " + userNumber + " isn't it.</p>"
+ "<p>Guess again...</p>";
}
}
public Integer getUserNumber() {
return userNumber;
}
public void setUserNumber(Integer userNumber) {
this.userNumber = userNumber;
}
/**
* Creates a new instance of UserNumberBean
*/
public UserNumberBean() {
Random randomGR = new Random();
randomInt = new Integer(randomGR.nextInt(10));
System.out.println("Duke's number : " + randomInt);
}
}