`
yourenyouyu2008
  • 浏览: 286910 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

在页面给 jsf inputHidden 赋值

    博客分类:
  • jsf
阅读更多

在jsf中使用hidden不像在传统jsp中使用那样直接,无法给inputHidden 组件赋值

<h:inputHidden value="#{EquipmentBB.equipment.createUserId}"/>

只能将值保存到页面然后再提及回去,没法改变hidden的值。如果想在页面中给EquipmentBB.equipment.createUserId设置个特定的值或者将别的表达式赋值给该hidden都是是无法实现的。

 

我们想到的办法是扩展hidden组件,增加属性。

<wf:inputHidden value="#{equipment.createUserId}" hiddenValue="#{equipment.createOrg+22}">

通过hiddenValue属性给hidden赋值, hiddenValue="#{30}"也可以。让hiddenValue属性在更新值模型阶段起作用,前几个阶段不用管。

 

代码如下,重写updateModel方法即可。只关注黑体部分,其余都是从父类拷贝的。

public class ProcessInputHidden extends HtmlInputHidden{

@Override
    public void updateModel(FacesContext context) {

 if (context == null) {
     throw new NullPointerException();
 }

 if (!isValid() || !isLocalValueSet()) {
     return;
 }
 ValueExpression ve = getValueExpression("value");
 ValueExpression hnve = getValueExpression("hiddenValue");
 if (ve != null) {
     try {
  if (hnve != null) {
      ve.setValue(context.getELContext(), hnve.getValue(context
       .getELContext()));
  } else {
      ve.setValue(context.getELContext(), getLocalValue());
  }
  setValue(null);
  setLocalValueSet(false);
  return;
     } catch (ELException e) {
  String messageStr = e.getMessage();
  Throwable result = e.getCause();
  while (null != result
   && result.getClass()
    .isAssignableFrom(ELException.class)) {
      messageStr = result.getMessage();
      result = result.getCause();
  }
  FacesMessage message;
  // if (null == messageStr) {
  // message = MessageFactory.getMessage(context,
  // UPDATE_MESSAGE_ID, MessageFactory.getLabel(context,
  // this));
  // } else {
  // message = new FacesMessage(FacesMessage.SEVERITY_ERROR,
  // messageStr, messageStr);
  // }
  // context.addMessage(getClientId(context), message);
  setValid(false);
     } catch (IllegalArgumentException e) {
  // FacesMessage message = MessageFactory.getMessage(context,
  // UPDATE_MESSAGE_ID, MessageFactory.getLabel(context,
  // this));
  // context.addMessage(getClientId(context), null);
  setValid(false);
     } catch (Exception e) {
  // FacesMessage message = MessageFactory.getMessage(context,
  // UPDATE_MESSAGE_ID, MessageFactory.getLabel(context,
  // this));
  // context.addMessage(getClientId(context), message);
  setValid(false);
     }
 }
    }

在设置值模型前先看看有没有hiddenValue属性,如果有就将hiddenValue的值设置进去即可。

如果使用了faceslet页面上直接加hiddenValue属性即可,不需要要给tag增加对应属性。

注:尽量将hidden放到其他输入域组件的后面,这样如果hiddenValue关联的是其他输入域就能取得正确的值了。

分享到:
评论

相关推荐

    jsf页面

    2. **组件库**:JSF包含一系列可重用的UI组件,如按钮、输入字段、表格等,这些组件可以方便地在页面上进行布局和组合。例如,`h:inputText`用于创建文本输入字段,`h:commandButton`则用于创建交互按钮。 3. **...

    用jsf做的登录注册的组件

    2. **JSF组件**:JSF的核心是UI组件库,如`h:inputText`用于输入文本,`h:commandButton`用于提交表单等。这些组件可以直接在JSP或Facelets页面中使用,简化了前端开发。 3. **登录与注册**:登录注册功能通常包括...

    第1部分-增强JSF页面的外观

    在“第1部分-增强JSF页面的外观”中,可能涵盖了如何将CSS规则集成到JSF项目中,以及如何有效地组织CSS代码以保持可维护性。 接着,JavaScript作为客户端脚本语言,为网页添加动态功能,使用户能够与页面进行交互。...

    JSF网页应用开发购物车

    **EL (Expression Language)** 用于在JSF视图(HTML页面)中访问和操作Managed Bean的属性。例如,`#{cartBean.itemCount}` 将显示`CartBean`中的`itemCount`属性值。 在处理用户交互时,JSF遵循其特定的**生命周期...

    JSF Java Server Faces (JSF)框架

    JSF是一种用于构建Java ... 包含JSP页面的JSF应用程序也使用由为了表现UI组件和在页面上的其他对象的JSF技术而定义的标准的tag库。 Java Server Faces技术的重要开发框架 sun-ri、myfaces、icefaces、richfaces、seam

    jsf 用户登陆界面

    在JSF中,用户登录界面是常见的功能模块,用于验证用户的身份。下面将详细讲解如何在JSF中创建一个用户登录界面。 1. **JSF架构简述** JSF是一种组件化的MVC(Model-View-Controller)框架,它提供了丰富的UI组件...

    jsf第一个例子 jsf架包 jsf实例

    7. **jsf实例**:在实际应用中,JSF实例通常指的是一个运行时的JSF应用程序,它包含了配置、组件、Managed Beans以及它们之间的交互。 在“Login”示例中,我们可能看到以下代码片段: ```xml &lt;!-- login.xhtml --...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    在JSF中,事件处理通常通过监听器(Listeners)和处理器(Action Methods)完成,这些可以在管理Bean中定义。监听器用于响应特定类型的事件,而处理器方法则执行与事件相关的操作。 ### JSF配置与导航 为了配置JSF...

    JSF参数传递doc

    这种方式同样限制了只能传递字符串,且需要在JSP页面上添加对应的隐藏输入字段`&lt;h:inputHidden&gt;`。 3. **使用 Request Beans 共享数据**: 为了在多个页面之间传递更复杂的数据,可以创建一个独立的Request Bean...

    jsf实例jsf实例 JSF学习 JSF jar包 JSF

    jsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSFjsf实例 JSF学习 JSF jar包 JSF jsf实例 JSF学习 JSF jar包 JSF

    JSF文件下载实现

    在JSF页面中,可以利用`&lt;h:outputLink&gt;`组件结合JSP页面来实现文件下载。`&lt;h:outputLink&gt;`的`value`属性指向JSP页面,通过传递参数(如`filename`)来指定要下载的文件。JSP页面接收这些参数并调用下载方法。 总之...

    jsf入门列子和jsf与Tiles结合

    具体集成步骤包括:引入Tiles的依赖库,配置`web.xml`以启用Tiles,编写Tiles的定义文件(如`tiles-defs.xml`),然后在JSF页面中引用Tiles组件。通过这种方式,开发者可以创建可复用的页面片段,并在多个JSF视图...

    jsf页面上的客服浮动窗口

    在JSF(JavaServer Faces)页面上实现一个客服浮动窗口是一项常见的需求,它能为用户提供实时的在线支持,增强用户体验。下面将详细讲解如何利用JSF技术和相关工具来创建这样一个功能。 首先,我们需要理解JSF的...

    JSF全套(JSF入门教+ LIB+ Ajax4JSF使用手册 )

    2. **JSF标签**:JSF的UI组件是以标签的形式在JSP页面中使用的,这些标签对应于服务器端的组件。学习JSF标签,你需要理解每个标签的用途,如`h:inputText`用于文本输入,`h:commandButton`用于触发动作,以及如何...

    JSF与hibernate整合的登陆

    1. **JSF组件**:JSF提供了一系列预定义的UI组件,如输入字段、按钮、表单等,这些组件可以方便地在页面上布局并处理用户交互。在这个登录项目中,可能会用到`h:inputText`(用于用户名和密码输入)、`h:...

    JSF包,jsf包,JSF包,jsf包

    这些组件可以通过属性和绑定来配置,允许开发者在页面上动态地创建和操作用户界面。 **事件处理**:JSF支持事件处理机制,允许组件之间通信。当用户触发一个事件(如点击按钮),对应的事件处理器会被调用,这使得...

    core jsf 1.2 jsf 核心

    这些组件可以通过XML(Faces配置文件)或者在JSP页面上直接声明。例如,`&lt;h:inputText&gt;`用于创建文本输入字段,`&lt;h:commandButton&gt;`用于创建提交按钮。组件间可以通过`f:ajax`标签实现异步更新,提高用户体验。 ###...

    jsf分页 jsf分页 jsf分页

    在JavaServer Faces (JSF)框架中,分页是一种常用的技术,用于处理大量数据时提供更好的用户体验。当数据集过大,一次性加载所有记录到页面上会导致性能下降且用户界面响应变慢。通过分页,我们可以将数据分成多个...

    IBM JSF学习资料

    对于初学者,首先需要理解JSF的基本原理和组件体系,如`h:inputText`、`h:commandButton`等。然后,学习如何创建JSF页面,处理用户输入,以及如何与后台Bean进行数据绑定。IBM的文档通常会详细解释如何在WebSphere...

    jsf 登录验证程序

    JSF的导航规则可以在faces-config.xml文件中定义,根据登录结果控制页面跳转。 6. **会话管理**:为了保持用户状态,登录信息通常会被存储在HTTP会话中。一旦用户验证成功,一个会话对象就会被创建,并保存用户的...

Global site tag (gtag.js) - Google Analytics