`
zhouchaofei2010
  • 浏览: 1104120 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

How to pass new hidden value to backing bean in JSF(JSF 隐藏域传值到后台)

    博客分类:
  • jsf
阅读更多

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/

jsf2-new-hidden-example-1
jsf2-new-hidden-example-2

Download Source Code

Download It – JSF-2-New-HiddenValue-Example.zip (10KB)

 

Reference

  1. JSF <h:inputHidden /> JavaDoc

转自:http://www.mkyong.com/jsf2/how-to-pass-new-hidden-value-to-backing-bean-in-jsf/

分享到:
评论

相关推荐

    jsf,radiobutton分组示例

    在这里,`value`属性用于绑定到后台Bean的属性,`#{bean.selectedOption}`表示用户选定的选项将被保存到该属性。`&lt;f:selectItems&gt;`标签则用于定义可供用户选择的选项列表,它的`value`属性引用了Bean中的一个列表,...

    JSF技术总结文档.doc

    在JSF页面中,我们可以使用Expression Language(EL)来访问和操作Backing Bean的属性,如`&lt;h:inputText value="#{user.name}" /&gt;`,这会将输入框的值与`user` Bean的`name`属性关联。 JSF的配置文件默认为`faces-...

    JSF文件下载实现

    - **Backing Bean**:在后台Bean(如`ABean`)中定义一个方法调用`downloadFile`,然后在JSF界面使用`&lt;h:commandButton&gt;`或`&lt;h:commandLink&gt;`组件触发该方法。例如,`&lt;h:commandButton value="download" action="#{...

    整合jsf hibernate spring实例

    部门人员一对多的CRUD操作 hibernate: 管理实体关系映射 spring:数据源配置与获得session IOC依赖注入 和 AOP ...jsf : backing bean的操作 jsf 标签应用 jsf 信息国际化以资源绑定 jsf 表单验证 jsf 导航设定

    JSF与Struts的区别.doc

    相比之下,JSF的JSP组件通过value属性与Backing Bean字段关联,提供了更大的灵活性。开发者可以将多个组件关联到同一个或不同的Backing Bean,而且设计页面时不必预先考虑Backing Bean的实现。 数据验证方面,...

    Backing Beans.htm

    当用户在JSF界面中进行操作,如点击按钮或填写表单时,这些动作会触发后台的Backing Bean方法,从而执行相应的业务逻辑。 Backing Beans有两种主要类型:Managed Beans和Session Beans。Managed Beans是在请求之间...

    JSF live demo 最新完整源代码

    Backing Bean可以被绑定到JSF组件,通过属性和方法与视图层交互。压缩包中的Backin Bean源码正是演示如何将这些Bean与用户界面关联的关键。 3. **JSF生命周期**:JSF有六步生命周期,包括初始化、恢复视图、应用...

    JSF实践项目(生活吧)

    4. **事件处理**:如果请求包含用户交互(如按钮点击),JSF会查找相应的事件处理器(通常是backing bean的方法)。 5. **业务处理**:backing bean执行业务逻辑,可能涉及数据库操作或其他服务调用。 6. **视图更新...

    JSF配置.pdf

    JSF(JavaServer Faces)是一个用于构建Java Web应用程序用户界面的组件驱动型框架。它旨在简化Web应用程序的开发,减轻开发人员处理HTTP协议和页面状态管理的负担。以下是对JSF配置相关知识点的详细说明。 ### 1. ...

    struts與jsf比較

    2. **Model层处理**:Struts的FormBean与JSP页面紧密耦合,每个JSP页面通常对应一个FormBean,而JSF的BackingBean更为灵活,组件可以通过value属性关联到BackingBean的不同字段,允许更自由的设计。 3. **数据验证*...

    java JSF入门

    这些注解定义了Bean的作用域(如请求、会话或应用程序级别)以及Bean的名称。 #### 2.3 Beans 上的 List, Map Managed Beans 可以持有复杂的数据结构,如List和Map,这些数据结构可以用来存储和展示列表或表格数据...

    JSF基础教程 简体中文

    JSF入门如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 入门 藉由以下的几个主题,可以...

    JSF入门必读——JSF入门基础

    开发第一个JSF程序通常涉及创建一个JSF页面(通常扩展名为.xhtml),在这个页面上使用JSF标签来定义组件,然后配置一个对应的后台Bean来处理用户输入和业务逻辑。JSF页面通过Faces Servlet处理请求,将用户交互转换...

    JSF 入门学习资料

    作为初学者入门JSF,这份学习资料将为你提供基础到进阶的知识,帮助你理解并掌握JSF的核心概念和技术。下面,我们将详细讨论JSF的基本组成部分、工作原理,以及如何在Meclipse环境中进行开发。 首先,JSF的核心概念...

    JSF开发规范

    - **BackingBean编码规范**:概述如何编写符合标准的BackingBean组件。 - **JSP编码规范**:提供JSP页面编码的最佳实践。 - **配置文件规范**:阐述配置文件如Tiles配置文件、导航规则文件等的编写规则。 - **CSS...

    JSF入门级教程

    JSF EL是一种强大的表达式语言,允许在页面和后台Bean之间进行数据绑定和方法调用。例如,#{bean.property}可以获取或设置Bean的属性值。 6. 国际化讯息 JSF支持资源包(resource bundle)机制,用于提供不同语言的...

Global site tag (gtag.js) - Google Analytics