JSF 隐藏域传值到后台
In some cases, you may need to pass a new hidden value to a backing bean. Generally, there are two ways :
1. HTML Tag + getRequestParameterMap()
Render hidden field with plain HTML input, hard-coded new hidden value and access in backing bean viagetRequestParameterMap() method.
JSF…
<h:form id="myForm">
<input type="hidden" name="hidden1" value="this is hidden2" />
<h:commandButton value="submit" action="#{user.action}" />
</h:form>
Managed bean…
@ManagedBean(name="user")
@SessionScoped
public class UserBean
{
public String action(){
String value = FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().get("hidden1");
}
}
2. JSF Tag + JavaScript
Render hidden field via “h:inputHidden” tag, assign new value via JavaScript.
JSF…
<script type="text/javascript">
function setHiddenValue(new_value){
document.getElementById('myForm:hidden2').value = new_value;
}
</script>
<h:form id="myForm">
<h:inputHidden id="hidden2" value="#{user.hidden2}" />
<h:commandButton value="submit" action="..." onclick="setHiddenValue('this is hidden2');" />
</h:form>
Managed bean…
@ManagedBean(name="user")
@SessionScoped
public class UserBean
{
public String hidden2;
public void setHidden2(String hidden2) {
this.hidden2 = hidden2;
}
}
JSF 2.0 new hidden value example
A JSF 2.0 example, to demonstrate the use of above two methods to pass a new hidden value to a backing bean.
1. Managed Bean
A simple managed bean, assign name as “user”.
package com.mkyong.form;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import java.io.Serializable;
@ManagedBean(name="user")
@SessionScoped
public class UserBean implements Serializable {
public String hidden1;
public String hidden2;
public String getHidden2() {
return hidden2;
}
public void setHidden2(String hidden2) {
this.hidden2 = hidden2;
}
public String getHidden1() {
return hidden1;
}
public void setHidden1(String hidden1) {
this.hidden1 = hidden1;
}
public String action(){
String value = FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().get("hidden1");
setHidden1(value);
return "start";
}
}
2. View Page
Two pages for demonstration.
demo.xhtml – two ways to pass a new hidden value.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<script type="text/javascript">
function setHiddenValue(new_value){
document.getElementById('myForm:hidden2').value = new_value;
}
</script>
</h:head>
<h:body>
<h1>JSF 2 pass new hidden value to backing bean</h1>
<h:form id="myForm">
<input type="hidden" name="hidden1" value="this is hidden2" />
<h:inputHidden id="hidden2" value="#{user.hidden2}" />
<h:commandButton value="submit" action="#{user.action}"
onclick="setHiddenValue('this is hidden2');" />
</h:form>
</h:body>
</html>
start.xhtml – display hidden value via “h:outputText” tag.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html">
<h:body>
<h1>JSF 2 pass new hidden value to backing bean</h1>
<ol>
<li>Hidden1 = <h:outputText value="#{user.hidden1}" /></li>
<li>Hidden2 = <h:outputText value="#{user.hidden2}" /></li>
</ol>
</h:body>
</html>
3. Demo
URL : http://localhost:8080/JavaServerFaces/
Download Source Code
Reference
转自:http://www.mkyong.com/jsf2/how-to-pass-new-hidden-value-to-backing-bean-in-jsf/
相关推荐
在这里,`value`属性用于绑定到后台Bean的属性,`#{bean.selectedOption}`表示用户选定的选项将被保存到该属性。`<f:selectItems>`标签则用于定义可供用户选择的选项列表,它的`value`属性引用了Bean中的一个列表,...
在JSF页面中,我们可以使用Expression Language(EL)来访问和操作Backing Bean的属性,如`<h:inputText value="#{user.name}" />`,这会将输入框的值与`user` Bean的`name`属性关联。 JSF的配置文件默认为`faces-...
- **Backing Bean**:在后台Bean(如`ABean`)中定义一个方法调用`downloadFile`,然后在JSF界面使用`<h:commandButton>`或`<h:commandLink>`组件触发该方法。例如,`<h:commandButton value="download" action="#{...
部门人员一对多的CRUD操作 hibernate: 管理实体关系映射 spring:数据源配置与获得session IOC依赖注入 和 AOP ...jsf : backing bean的操作 jsf 标签应用 jsf 信息国际化以资源绑定 jsf 表单验证 jsf 导航设定
相比之下,JSF的JSP组件通过value属性与Backing Bean字段关联,提供了更大的灵活性。开发者可以将多个组件关联到同一个或不同的Backing Bean,而且设计页面时不必预先考虑Backing Bean的实现。 数据验证方面,...
当用户在JSF界面中进行操作,如点击按钮或填写表单时,这些动作会触发后台的Backing Bean方法,从而执行相应的业务逻辑。 Backing Beans有两种主要类型:Managed Beans和Session Beans。Managed Beans是在请求之间...
Backing Bean可以被绑定到JSF组件,通过属性和方法与视图层交互。压缩包中的Backin Bean源码正是演示如何将这些Bean与用户界面关联的关键。 3. **JSF生命周期**:JSF有六步生命周期,包括初始化、恢复视图、应用...
4. **事件处理**:如果请求包含用户交互(如按钮点击),JSF会查找相应的事件处理器(通常是backing bean的方法)。 5. **业务处理**:backing bean执行业务逻辑,可能涉及数据库操作或其他服务调用。 6. **视图更新...
JSF(JavaServer Faces)是一个用于构建Java Web应用程序用户界面的组件驱动型框架。它旨在简化Web应用程序的开发,减轻开发人员处理HTTP协议和页面状态管理的负担。以下是对JSF配置相关知识点的详细说明。 ### 1. ...
2. **Model层处理**:Struts的FormBean与JSP页面紧密耦合,每个JSP页面通常对应一个FormBean,而JSF的BackingBean更为灵活,组件可以通过value属性关联到BackingBean的不同字段,允许更自由的设计。 3. **数据验证*...
这些注解定义了Bean的作用域(如请求、会话或应用程序级别)以及Bean的名称。 #### 2.3 Beans 上的 List, Map Managed Beans 可以持有复杂的数据结构,如List和Map,这些数据结构可以用来存储和展示列表或表格数据...
JSF入门如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 入门 藉由以下的几个主题,可以...
开发第一个JSF程序通常涉及创建一个JSF页面(通常扩展名为.xhtml),在这个页面上使用JSF标签来定义组件,然后配置一个对应的后台Bean来处理用户输入和业务逻辑。JSF页面通过Faces Servlet处理请求,将用户交互转换...
作为初学者入门JSF,这份学习资料将为你提供基础到进阶的知识,帮助你理解并掌握JSF的核心概念和技术。下面,我们将详细讨论JSF的基本组成部分、工作原理,以及如何在Meclipse环境中进行开发。 首先,JSF的核心概念...
- **BackingBean编码规范**:概述如何编写符合标准的BackingBean组件。 - **JSP编码规范**:提供JSP页面编码的最佳实践。 - **配置文件规范**:阐述配置文件如Tiles配置文件、导航规则文件等的编写规则。 - **CSS...
JSF EL是一种强大的表达式语言,允许在页面和后台Bean之间进行数据绑定和方法调用。例如,#{bean.property}可以获取或设置Bean的属性值。 6. 国际化讯息 JSF支持资源包(resource bundle)机制,用于提供不同语言的...