gpt4 book ai didi

java - 将支持 bean 实例作为参数传递给另一个支持 bean 方法

转载 作者:行者123 更新时间:2023-12-02 00:55:25 28 4
gpt4 key购买 nike

用户通过表单向我的支持 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>

注意方法绑定(bind)#{simpleBean.processData}。这必须是一个不带参数并返回 String 参数的公共(public)方法(如果需要,可用于页面导航)。

这不是唯一的方法,但它相当简单。

关于java - 将支持 bean 实例作为参数传递给另一个支持 bean 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837128/

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