[英]Passing a backing bean instance as parameter for another backing bean method
用戶通過表單將信息填充到我的支持bean之后,我想用Java代碼處理實例(例如JAXB編組)。
所以目前我正在這樣做:
<% OtherBean.method(myBackingBean); %>
這是-如果我是對的-並不是最新的解決方案:)那么我如何才能以“更好”的方式實現這一目標?
預先感謝,丹尼爾。
一種解決方案是向bean添加一個動作方法-可以讓它自己處理。
例如,這個簡單的bean:
public class SimpleBean {
private String forename;
private String surname;
public String processData() {
// TODO: real work
System.out.println("forename=" + forename);
System.out.println("surname=" + surname);
return null; // optional navigation rule
}
public String getForename() {
return forename;
}
public void setForename(String forename) {
this.forename = forename;
}
public String getSurname() {
return surname;
}
public void setSurname(String surname) {
this.surname = surname;
}
}
...在WEB-INF / faces-config.xml中定義:
<managed-bean>
<managed-bean-name>simpleBean</managed-bean-name>
<managed-bean-class>simplebean.SimpleBean</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
...可以使用以下JSP進行處理:
<?xml version="1.0" encoding="UTF-8" ?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<jsp:directive.page language="java"
contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" />
<jsp:text>
<![CDATA[<?xml version="1.0" encoding="UTF-8" ?>]]>
</jsp:text>
<jsp:text>
<![CDATA[<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">]]>
</jsp:text>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Enter Name</title>
</head>
<body>
<f:view>
<h:form>
<h:panelGrid columns="2">
<h:outputText value="forename:" />
<h:inputText id="it1" value="#{simpleBean.forename}" />
<h:outputText value="surname:" />
<h:inputText id="it2" value="#{simpleBean.surname}" />
</h:panelGrid>
<h:commandButton action="#{simpleBean.processData}"
value="process" />
</h:form>
</f:view>
</body>
</html>
</jsp:root>
注意方法綁定#{simpleBean.processData}。 這必須是一個不帶任何參數並返回String參數(如果需要,可用於頁面導航)的公共方法。
這不是解決此問題的唯一方法,但是相當簡單。
您可以將一個支持bean作為另一個bean的實例變量。 並在春季或您正在使用的任何配置中進行配置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.