JSF使用注意点

1.转换时间时,必须加上时区GMT+8,不然相差一天。

2.当view为空时,不显示。

3.

actionListener在执行了action之后再执行。

可以没有action,而只有actionListener。

action可以设置成一个方法,也可以设置为一个导航用例的

多个页面如果使用了同一个request级的backingBean,可能导致一些莫名其妙的问题。如:不能执行指定的Action.

4.对于向managed-bean的属性注入request参数时,其必须为request,不要为值类型(如果是值类型,当指定的request参数为空时,

http://www.kpwang.com/注入时会出错,因为一个空对象如Integer null不能自动转换为一个值类型如int的0)。如下所示:

productBean

demo.view.ProductBean

request

id

java.lang.Integer

#{param.id}

view

java.lang.Boolean

#{param.view}

5.对于以下查找是按部件id查找的,不是按参数名称查找的。

UIParameter uip =(UIParameter)event.getComponent().findComponent("productId");

//event是actionListener中的参数ActionEvent类型。

所以

必须设置id

Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

String someValue = params.get("id");

这个是按参数名称查找的

JSF标签只是JSF组件的外衣,Id就是组件的命名,与Delphi的组件名是一样的,之所以用Id不用Name,是为了与HTML中的一致(HTML input组件 id是其标识,name是其传递到服务器端的参数名。),所以查找JSF组件当然用Id了。

6.当一个页面的BackingBean的构造函数中运行出错或属性注入出错时,表面上会报计算表达式错误,原因是这个BackingBean没有构造出来,为空,当然在Reader页面时会没有办法求相关的表达式的值。

7.request级的BackingBean在从客户端到服务端一次请求后,就被销毁。在这次请求中,只会被创建一次。在Forward之前创建的BackingBean在Forward之后,并不会被再次创建。

8.判断是否是回传。

protected boolean isPostBack()

{

if (FacesContext.getCurrentInstance().getRenderResponse())

return false;

else

return true;

}

9.里使用时的注意事项

感谢 tdwebber 提供。

1) When using a jsp:include within the f:view tags, must include f:subview in the included file (or around the jsp:include tag).鲲鹏网

当在f:view中使用jsp:include标签插入一个文件时,

http://www.kpwang.com/必须用f:subview把jsp:include包起来

2) In the include file, cannot have any HTML. All HTML tags must be wrapped in f:verbatim tags.

在被插入的文件中,不能有任何的html标签,如果必须使用html标签,必须用f:verbatim将它包起来。

3) Within main f:view tags however, it is not necessary to wrap everything in f:verbatim tags (it´s not bad either). Just HTML that appears as children to other JSF components (i.e. t:newspaperTable).

在主f:view中,没有必要用f:verbatim将html标签包起来(当然包起来也可以)。当html标签出现在子视图或其它JSF部件标签中时,就要用f:verbatim包起来。

10.JSF的缓存能力好像太强了,有时停止了服务器,改动了jsp页面中的jsf标签,再启动服务器,但到该页面时,还是原来的内容,需要手动刷新一下。有时需要先转到别的页面,再回来刷新一下才能看到更新的内容。

1.转换时间时,必须加上时区GMT+8,不然相差一天。

2.当view为空时,不显示。

3.

actionListener在执行了action之后再执行。

可以没有action,而只有actionListener。

action可以设置成一个方法,也可以设置为一个导航用例的

多个页面如果使用了同一个request级的backingBean,可能导致一些莫名其妙的问题。如:不能执行指定的Action.

4.对于向managed-bean的属性注入request参数时,其必须为request,不要为值类型(如果是值类型,当指定的request参数为空时,

http://www.kpwang.com/注入时会出错,因为一个空对象如Integer null不能自动转换为一个值类型如int的0)。如下所示:

productBean

demo.view.ProductBean

request

id

java.lang.Integer

#{param.id}

view

java.lang.Boolean

#{param.view}

5.对于以下查找是按部件id查找的,不是按参数名称查找的。

UIParameter uip =(UIParameter)event.getComponent().findComponent("productId");

//event是actionListener中的参数ActionEvent类型。

所以

必须设置id

Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

String someValue = params.get("id");

这个是按参数名称查找的

JSF标签只是JSF组件的外衣,Id就是组件的命名,与Delphi的组件名是一样的,之所以用Id不用Name,是为了与HTML中的一致(HTML input组件 id是其标识,name是其传递到服务器端的参数名。),所以查找JSF组件当然用Id了。

6.当一个页面的BackingBean的构造函数中运行出错或属性注入出错时,表面上会报计算表达式错误,原因是这个BackingBean没有构造出来,为空,当然在Reader页面时会没有办法求相关的表达式的值。

7.request级的BackingBean在从客户端到服务端一次请求后,就被销毁。在这次请求中,只会被创建一次。在Forward之前创建的BackingBean在Forward之后,并不会被再次创建。

8.判断是否是回传。

protected boolean isPostBack()

{

if (FacesContext.getCurrentInstance().getRenderResponse())

return false;

else

return true;

}

9.里使用时的注意事项

感谢 tdwebber 提供。

1) When using a jsp:include within the f:view tags, must include f:subview in the included file (or around the jsp:include tag).鲲鹏网

当在f:view中使用jsp:include标签插入一个文件时,

http://www.kpwang.com/必须用f:subview把jsp:include包起来

2) In the include file, cannot have any HTML. All HTML tags must be wrapped in f:verbatim tags.

在被插入的文件中,不能有任何的html标签,如果必须使用html标签,必须用f:verbatim将它包起来。

3) Within main f:view tags however, it is not necessary to wrap everything in f:verbatim tags (it´s not bad either). Just HTML that appears as children to other JSF components (i.e. t:newspaperTable).

在主f:view中,没有必要用f:verbatim将html标签包起来(当然包起来也可以)。当html标签出现在子视图或其它JSF部件标签中时,就要用f:verbatim包起来。

10.JSF的缓存能力好像太强了,有时停止了服务器,改动了jsp页面中的jsf标签,再启动服务器,但到该页面时,还是原来的内容,需要手动刷新一下。有时需要先转到别的页面,再回来刷新一下才能看到更新的内容。


相关文章

  • F-35战斗机详细资料
  • F-35联合攻击战斗机(JSF)是美国准备在21世纪使用的主力战斗机之一.计划取代美空军的F-15E.F-16.A-10和F-117,海军的F-14.海军陆战队的AV-8B,英海军的"海鹞"式和空军的"狂风&q ...查看


  • 国外综合诊断.预测与健康管理的发展历程
  • 国外综合诊断.预测与健康管理的发展历程 张宝珍 引言 随着现代武器装备复杂性.综合化.智能化程度的不断提高,为了以更经济有效的方式满足现代战争联合作战和网络中心战等新型作战模式对武器作战效能和敏捷.准确和经济的持续保障能力的需求,综合的故障 ...查看


  • 中国从F35研发学到什么:只追赶不超越没出路
  • 2013-10-13 08:04 中国航空报 11 字号:TT [首批F35C涂装完毕就等上舰] 事实上,细细探究F-35项目的整个发展过程,其中的许多经验教训都值得后来者借鉴. 一机多型放大了矛盾 在项目开始之初,F-35一直都被看做是解 ...查看


  • 全转动副三自由度并联机器人设计说明书
  • 河北工业大学城市学院 毕 业 论 文 作 者: 周** 学 号: ***** 系(专业): 机械系 专 业: 机械设计与制造及其自动化 题 目: 全转动副三自由度并联机器人 指导者: 李** 教授 (姓 名) (专业技术职务) 评阅者: ( ...查看


  • F-35A形成初始作战能力
  • 据美国福布斯网站2016年8月5日报道,美国空军在2016年8月2日宣布,洛克希德·马丁公司生产的F-35A战斗机形成初始作战能力(IOC),这意味着美国空军已经有1个中队的该型战机可执行作战任务.F-35联合攻击战斗机(JSF)计划由于成 ...查看


  • 数字化设计制造技术基础作业
  • 数字化设计制造技术基础作业 航空产品数字化研制体系及其研制流程构建 学 号 :13032210 学生姓名 : 劳汉铿 任课教师 : 朱永国 2016年5月 目 录 摘要----------------------.. -.1 引言----- ...查看


  • 固定翼军用作战飞机发展历程!
  • 铁翼沧桑:固定翼军用作战飞机发展历程! 铁翼沧桑:固定翼军用作战飞机发展历程 1903年人类第一架飞机问世,但这种科技发展的重要成果却并没有像历史上其他重要发明一样被很快应用于军事领域.除了少数思想敏锐的先驱者一直在坚持不懈地进行各种尝试外 ...查看


  • 树脂基碳纤维复合材料成型工艺现状及发展方向
  • 树脂基碳纤维复合材料成型工艺现状及发展方向 与金属材料相比,高性能纤维复合材料成本高,所以必须在纤维复合材料结构件制造过程中广泛实现自动化和数字化相结合的现代复合材料制造技术,以达到降低飞机全寿命周期内成本的目的. 国外飞机碳纤维复合材料制 ...查看


  • 档案归档编号方法
  • 档案归档编号方法 1 凡是归档文件上有自带编号的,档案管理员沿用原文件编号. 2 凡是归档文件上没有编号的,档案管理员则根据下表方法自行编号. 序号 档 案 范 围 文件编号方式 卷宗编号方式 1 公司对内发文(决定.规章制度及流程等) N ...查看


热门内容