`

JSF 动态创建组件

    博客分类:
  • jsf
阅读更多
JSF 的组件和组件树的概念非常好,可以完全通过JAVA代码实现的组件的生成与设置方法等操作.尤其是JSF1.2提供了更多的组件的Binding方法.下面就实际做一个例子.

首先在managedBean中创建组件

1、创建按钮


private HtmlCommandButton button = new HtmlCommandButton();

public HtmlCommandButton getButton() {
button.setValue("button"); //设置按钮上显示的值
FacesContext context = FacesContext.getCurrentInstance();
ELContext elContext = context.getELContext();
ExpressionFactory ef = context.getApplication().getExpressionFactory();
Class[] c = new Class[0];
// c[0] = ActionEvent.class; //此处想调用一个带参数的方法,没有成功
MethodExpression me = ef.createMethodExpression(elContext,
"#{testBean.testEl}", Void.TYPE, c);
button.setActionExpression(me); //为钮加入一个响应的方法,这种方法是JSF1.2方式的

return button;
}

//在运行时被调用的方式,同前面的方法绑定中的EL表达是一致的.

public void testEl() {
System.out.println("testEl method is run no param");
}


在JSP页面中加入按钮.(testBean是在FacesConfig.xml中声明的上的bean)

<h:commandButton binding="#{testBean.button }"/>



2、创建表格

private HtmlPanelGrid grid = new HtmlPanelGrid();


public HtmlPanelGrid getGrid() {
List list = grid.getChildren();//取得表格的列表
list.add(getHtmlInputText());//向表格列表加入组件
System.out.println("grid column " + grid.getColumns());
return grid;
}

public HtmlInputText getHtmlInputText() {
htmlInputText.setValue("abcc");//这里直接设置值了,可以通过expressionFactory.createValueExpression(elContext, "#{testBean.userid}", String.class);来设置值表达式

htmlInputText.setAlt("alt htmlInputText ");
htmlInputText.setConverter(new TestConve());//为输入框设置转换器
return htmlInputText;
}



在JSP中加入下面代码:

<h:panelGrid binding="#{testBean.grid }"/>



就可以在表格内显示一个输入框了。

分享到:
评论

相关推荐

    jsf动态创建表单控件实例.

    java server face动态创建表单控件实例

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    在这本权威著作中,sun microsystems公司中的jsf合作规范领导者展示了如何创建动态的、跨浏览器的web应用程序,由于保留了较高质量的代码和可扩展性,这些应用程序可以给用户带来极为优秀的体验。 《JavaServer ...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    在这本权威著作中,sun microsystems公司中的jsf合作规范领导者展示了如何创建动态的、跨浏览器的web应用程序,由于保留了较高质量的代码和可扩展性,这些应用程序可以给用户带来极为优秀的体验。 《JavaServer ...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    中文名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 原名: 经典Java EE企业应用实战--基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 作者: 李刚 资源格式: PDF 版本: 第一版 出版社: 电子...

    jsfworkshop:萨克森 JSF 研讨会

    创建和使用自定义组件 范围界定 使用引导程序进行静态导航,将模板更改为引导程序 验证和消息 编码 自定义转换器 新话题 我继续使用这个项目来制作小功能的原型。 添加以下主题: 动态表单:用户可扩展的表单。 ...

    EstudosInicialJavaJSF:RLSystem Java JSF 课程研究 - 2014

    创建一个 Bean 支持豆 Beans 范围 配置 Bean 值绑定表达式的语法 动手实践 - 第一个例子 #####模块 4 - 导航 目标 静态导航 动态导航 高级导航问题 #####模块 5 - 消息 目标 介绍 将消息加载到资源包中 动手实践 -...

    J2EE应用开发详解

    149 9.4 JSF的组成 152 9.4.1 UI组件 152 9.4.2 JSF标签 154 9.5 统一EL 156 9.5.1 表达式和函数 156 9.5.2 操作符 157 9.5.3 保留字 158 9.5.4 内置对象 158 9.6 Backing Bean 158 9.7 创建自定义组件 162 9.8 小结...

    Hibernate实战(第2版 中文高清版)

     17.3.2 创建组件   17.3.3 给上下文变量起别名   17.3.4 完成登录/注销特性   17.4 验证用户输入   17.4.1 Hibernate Validator简介   17.4.2 创建注册页面   17.4.3 用Seam实现国际化   17.5 利用...

    iuhyiuhkjh908u0980

    PrettyFaces优雅的解决了这个问题,包括诸如功能:网页装载行动,无缝的跟faces的导航整合,动态视图的ID分配和管理参数分析,无需配置,兼容其他JSF框架。P ... by zly06 2009-09-09 回复 (0) 相关博客 ant模板 ...

    java开源包1

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包11

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包2

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包3

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包6

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包5

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包10

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包4

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包8

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

    java开源包7

    JFile 是 JActor 的文件持久化组件,以及一个高吞吐量的可靠事务日志组件。 Google地图JSP标签库 利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还...

Global site tag (gtag.js) - Google Analytics