文档章节

jsf如何通过按钮切换在同一个页面上的非公共部分显示不同的内容

街角旳祝福
 街角旳祝福
发布于 2013/05/23 16:56
字数 298
阅读 1104
收藏 4
点赞 0
评论 2
在jsf中,同一个页面上有公有的内容,也有非公有的内容,通过一个按钮进行切换来显示不同的内容(通过ajax实现):
   前台页面:(这句话放到单选按钮里面,这样后台就能知道切换后往后台传的值)
          <p:ajax immediate="true" listener="#{userBean.userTypeChange}" update=":theShowPage" />
   注释:
          immediate="true"表示跳过验证立即执行;

        update=":theShowPage"表示切换完按钮后更新的页面。

  后台页面:
          public void userTypeChange(AjaxBehaviorEvent event) {
          Object item = ((SelectOneMenu) event.getSource()).getSubmittedValue();
           int role= Integer.parseInt((String.valueOf(item)));
         if (newValue == "管理员") {
          user.setUserType(1);
         }
           }

   前台页面如果要显示不同的值,可以在同一个页面上用rendered属性,这种验证能通过int型或boolean类型进行显示,String类型的不行例如:
         rendered="#{userBean.user.userType==1}"

详细的一种写法: bean页面: private String province; private String city; public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } List selectItemList = new ArrayList(); public List getSelectItemList() { return selectItemList; } public void changeProvince(AjaxBehaviorEvent event) { String selectedValue =String.valueOf(((HtmlSelectOneMenu)event.getSource()).getSubmittedValue()) ; if (selectedValue.equals("hbs")) { selectItemList.add(new SelectItem("2", "Label2")); } else { selectItemList.add(new SelectItem("1", "Label1")); } }

© 著作权归作者所有

共有 人打赏支持
街角旳祝福
粉丝 3
博文 8
码字总数 5119
作品 0
海淀
程序员
加载中

评论(2)

街角旳祝福
街角旳祝福
你好,首先userBean与前台下拉框已经绑定,我此时后台对它设值主要是为了和前台部分页面显示不同内容相关联的,因为我下拉框每切换一下,显示的页面就会变化,item 对象中获得前台下拉框中的值,此时你必须把该值给userType,因为我ajax绑定后台的方法中只能通过item获得下拉框中的值。
其次 rendered="#{userBean.user.userType==1}",是没有问题的。此时我的1为int类型的。
温鹏
温鹏
看了你两篇关于JSF的博客,修改了一点,如下所示,有错误之处请指出!
xhtml页面:

<p:selectOneMenu id="type" value="#{userBean.user.userType}" style="width:300px">
<f:selectItems value="#{userBean.userTypes}" />
<p:ajax immediate="true" listener="#{userBean.userTypeChange}" update=":theShowPage" />
</p:selectOneMenu>


既然userBean与前台下拉框已经绑定,那么在后台就无须判断提交的值是啥了
public class UserBean{
  private User user;

  private static Map<String, Integer> userTypes = new LinkedHashMap<String, Integer>();
static {
userTypes.put(“管理员”,admin);
userTypes.put(“维护员”,maint);
userTypes.put(“档案员”,recordor);
}

  //p:ajax 如果没有指定partialSubmit="" 及 process="",默认就已经提交了selectOneMenu所在form的所有值
  public void userTypeChange() {
   //Object item = ((SelectOneMenu) event.getSource()).getSubmittedValue();
   //String role = (String.valueOf(item));
   if (user.getUserType() == admin) {
     //user.setUserType(1);
     //处理其他逻辑
   }
  }
}
还有,在xhtml中用 rendered="#{userBean.user.userType eq 1}"
怀疑论者的 JSF: JSF 应用程序的生命周期

级别: 中级 Rick Hightower (rhightower@arc-mind.com), CTO, ArcMind 2005 年 3 月 01 日 本系列怀疑论者的 JSF 一共包含 4 篇文章,本文是其中的第 2 篇。在本文中,Rick Hightower 对 Ja...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

JSF 2 简介,第 1 部分: 流线化 Web 应用程序开发

在朋友的强烈推荐下,开始看JSF2.0。看了第一部分。感觉不是太大。接下来继续学习,应该会有不错的体验。。。 使用 JSF 2 简化导航、免除 XML 配置并轻松访问资源 public class Place { ......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Seam 对话以及工作区管理

现在该更详细地了解一下Seam的对话模型了。 从历史上看,Seam的“对话Conversation”概念是由三个不同的概念合并而成的。 工作区(workspace) 的概念,是我2002年在给英国政府做项目中遇到的...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

JSF 2 简介,第 3 部分: 事件处理、JavaScript 和 Ajax

确实相当强大。 转自:http://www.ibm.com/developerworks/cn/java/j-jsf2fu3/ 使用更多新 JSF 2 特性增强复合组件 <h:selectOneMenu onchange="submit()" value="#{cc.parent.attrs.locati......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

JSF 2 简介: 复合组件最佳实践

JSF 是一个基于组件的框架,这意味着它可以提供您所需要的基础架构来实现您自己的组件。JSF 2 提供一种简单的方法来实现自定义的复合组件。 在前面的文章中,我已经向您展示了几个复合组件的...

IBMdW ⋅ 2011/05/18 ⋅ 0

vue-router 基本使用

 路由,其实就是指向的意思,当我点击页面上的home按钮时,页面中就要显示home的内容,如果点击页面上的about 按钮,页面中就要显示about 的内容。Home按钮 => home 内容, about按钮 => a...

为了美好的明天 ⋅ 05/01 ⋅ 0

1.5 Hello, world! 解剖 -JSF实战 -hxzon -jsf学习笔记

1.5 Hello, world! 解剖 -JSF实战 -hxzon -jsf学习笔记 既然已经对JSF能够解决什么问题有了初步理解,我们来开始开发一个简单的应用。本节假定你已熟悉Java Web应用和JSP(关于这些技术的信息...

hxzon ⋅ 2009/03/05 ⋅ 0

JSF 2 简介,第 2 部分: 模板及复合组件

转自:http://www.ibm.com/developerworks/cn/java/j-jsf2fu2/ 用 JavaServer Faces 2 实现可扩展 UI <ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.co......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Seam - 无缝集成 JSF,第 3 部分: 用于 JSF 的 Ajax

用 Seam Remoting 和 Ajax4jsf 无缝熔接客户机和服务器 转自:http://www.ibm.com/developerworks/cn/java/j-seam3/ 原文链接:http://blog.csdn.net/vanessa219/article/details/3370841......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Seam - 无缝集成 JSF,第 3 部分: 用于 JSF 的 Ajax

级别: 中级 Dan Allen (dan.allen@mojavelinux.com), 高级 Java 工程师, CodeRyte, Inc. 2007 年 6 月 25 日 JSF 基于组件的方法论促进了抽象,但大多数 Ajax 实现由于公开了底层的 HTTP 交...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java Web如何操作Cookie的添加修改和删除

创建Cookie对象 Cookie cookie = new Cookie("id", "1"); 修改Cookie值 cookie.setValue("2"); 设置Cookie有效期和删除Cookie cookie.setMaxAge(24*60*60); // Cookie有效时间 co......

二营长意大利炮 ⋅ 58分钟前 ⋅ 0

【每天一个JQuery特效】淡入淡出显示或隐藏窗口

我是JQuery新手爱好者,有时间就练练代码,防止手生,争取每天一个JQuery练习,在这个博客记录下学习的笔记。 本特效主要采用fadeIn()和fadeOut()方法显示淡入淡出的显示效果显示或隐藏元...

Rhymo-Wu ⋅ 今天 ⋅ 0

Spring JDBC使用方法

普通实现: 1、创建数据表customer。 可以使用任何数据库实现,在项目中要引入相应数据库驱动包并配置相应数据库连接。 2、创建Customer pojo。 Customer类的属性对应数据库的属性,除了为每...

霍淇滨 ⋅ 今天 ⋅ 0

Contos 7 安装Jenkins

Jenkins是一款能提高效率的软件,它能帮你把软件开发过程形成工作流,典型的工作流包括以下几个步骤 开发 提交 编译 测试 发布 有了Jenkins的帮助,在这5步中,除了第1步,后续的4步都是自动...

欧虞山 ⋅ 今天 ⋅ 0

revel

revel install go get github.com/revel/revelgo get github.com/revel/cmd create new app revel new git.oschina.net/zdglf/myapp run app revel run git.oschina.net/zdglf/myapp ot......

zdglf ⋅ 今天 ⋅ 0

49. Group Anagrams - LeetCode

Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List<String>> groupAnagrams(String[] strs) { Map<Strin......

yysue ⋅ 今天 ⋅ 0

spring Email

使用spring发Email其实就是使用spring自己封装携带的一个javamail.JavaMailSenderImpl类而已。这个类可以当一个普通的java对象来使用,也可以通过把它配置变成spring Bean的方式然后注入使用...

BobwithB ⋅ 今天 ⋅ 0

spark 整理的一些知识

Spark 知识点 请描述spark RDD原理与特征? RDD全称是resilient distributed dataset(具有弹性的分布式数据集)。一个RDD仅仅是一个分布式的元素集合。在Spark中,所有工作都表示为创建新的...

tuoleisi77 ⋅ 今天 ⋅ 0

思考

时间一天天过感觉自己有在成长吗?最怕的是时光匆匆而过,自己没有收获!下面总结下最近自己的思考。 认识自己 认识另一个自己,人们常说要虚心听取别人意见和建议。然而人往往是很难做到的,...

hello_hp ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部