- 浏览: 707011 次
- 性别:
- 来自: 北京
-
博客专栏
-
-
读金庸故事,品程序人生
浏览量:47830
文章分类
最新评论
-
hty881008:
LZ,你的json返回是怎么出来的,我的怎么是No messa ...
使用CXF暴露您的REST服务 -
jxFY:
赞
Apache的对象池化工具commons-pool -
wangyudong:
新版本的Wisdom RESTClient地址https:// ...
使用CXF暴露您的REST服务 -
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
使用CXF暴露您的REST服务 -
spring_springdata:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven3实战笔记01环境配置与使用入门
1. JSF也是JavaEE5的标准,感觉上sun是看到了ASP.NET的控件好处,将微软那套给沿袭过来了,推出了JSF的标准,并且自己实现了一套叫做JSF RI,Apache也实现了一套JSF标准——MyFaces。MyFace的组件比RI要好一些,所以有时候用RI的JSF实现,之后将MyFaces的部分组件包包含进来当做一个JSF组件插件来用。笔者的教训就是:JSF学起来很快!把它类比Struts2来学了(实际上在开发上确实和Struts2非常像!),很快就能搭建一个网站出来,之后就认为自己学会了JSF了~~实际上,JSF入门很容易,要想精通,搞明白它的原理、生命周期、灵活运用Web组件使之将Web开发真正做到类似于AWT、SWING开发,确实得下一番苦工!这个在笔者一次面试经历中吃了大亏了。唉~~还是自己功夫没下到家啊~~这个总结也是赶紧弥补以前的学习总结吧~~不能糊里糊涂的混日子了,自以为学个技术能拿出个演示Demo就算完事了,还是得知道怎么来的,多调试一下才叫学习啊,呵呵说多了。
JSF的UI组件标签的使用和呈现的效果网上有很多资源,这里就不总结了,直接写一个页面代码,包括了常用的使用控件
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@page contentType="text/html;charset=GB2312"%>
<html>
<head>
<title>JSF的UI组件</title>
</head>
<body>
<f:view>
<h:form id="uiform">
<h:outputLabel for="textareaid" value="#{UIbean.name}" />
<h:inputTextarea id="textareaid" rows="3" cols="30" value="复选框内容"
required="" />
<h:inputHidden id="hiddenValue" value="隐藏信息" />
<br />
<h:outputLink value="ui.faces">
<h:outputText value="超连接" />
<f:param name="name" value="xml"></f:param>
</h:outputLink>
<br />
<f:loadBundle basename="message" var="message" />
读取资源文件:
<h:outputFormat value="#{message.text}">
<f:param value="hello" />
<f:param value="jimmy" />
</h:outputFormat>
<br />
同意:
<h:selectBooleanCheckbox value="#{UIbean.checked}" />
<br />
学历:
<h:selectOneRadio value="#{UIbean.education}" layout="pageDirection">
<f:selectItem itemLabel="大专" itemValue="大专" />
<f:selectItem itemLabel="本科" itemValue="本科" />
<f:selectItem itemLabel="硕士" itemValue="硕士" />
<f:selectItem itemLabel="博士" itemValue="博士" />
</h:selectOneRadio>
<br />
<!--
颜色:
<h:selectManyCheckbox layout="pageDirection"
value="#{UIbean.colors}">
<f:selectItem itemLabel="红" itemValue="red" />
<f:selectItem itemLabel="黄" itemValue="yellow" />
<f:selectItem itemLabel="蓝" itemValue="blue" />
</h:selectManyCheckbox>
颜色:
<h:selectManyListbox value="#{UIbean.colors}">
<f:selectItem itemLabel="红" itemValue="red" />
<f:selectItem itemLabel="黄" itemValue="yellow" />
<f:selectItem itemLabel="蓝" itemValue="blue" />
</h:selectManyListbox>
<br />
数字:
<h:selectManyMenu value="#{UIbean.colors}">
<f:selectItems value="#{UIbean.colorsItems}" />
</h:selectManyMenu>
<br />
-->
Map技术:
<h:selectManyCheckbox value="#{UIbean.colors}">
<f:selectItems value="#{UIbean.colorsItems}" />
</h:selectManyCheckbox>
<br />
测试
<h:selectOneRadio layout="lineDirection" value="#{UIbean.state}">
<f:selectItem itemLabel="High School" itemValue="a" />
<f:selectItem itemLabel="Bachelor's" itemValue="b" />
<f:selectItem itemLabel="master's" itemValue="c" />
<f:selectItem itemLabel="Doctorate's" itemValue="d" />
</h:selectOneRadio>
<br />
学历:
<h:selectOneRadio layout="lineDirection" value="#{UIbean.edu}">
<f:selectItem itemLabel="大专" itemValue="1"/>
<f:selectItem itemLabel="本科" itemValue="2" />
<f:selectItem itemLabel="硕士" itemValue="3" />
<f:selectItem itemLabel="博士" itemValue="4" />
</h:selectOneRadio>
<br />
<h:commandButton image="../image/1.gif"
action="#{UserNumberBean.check}" value="#{message.commandText}" />
<br />
<h:panelGrid columns="2">
<f:verbatim>姓名</f:verbatim>
<h:inputText value="#{UIbean.name}" />
<h:outputText value="密码" />
<h:inputSecret value="#{UIbean.password}" />
<h:commandButton value="提交1" action="#{UIbean.check2}" />
<h:commandButton value="重置1" type="reset" />
</h:panelGrid>
<br />
<h:panelGroup>
<h:panelGrid columns="5" width="100%" border="1">
<h:panelGroup style="width:50">
<f:verbatim>姓名</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:50">
</h:panelGroup>
<h:panelGroup style="width:50">
<f:verbatim>用户名</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:50">
</h:panelGroup>
<h:panelGroup style="width:200">
<f:verbatim>专业____方向_____</f:verbatim>
</h:panelGroup>
</h:panelGrid>
<h:panelGrid columns="5" width="100%" border="1">
<h:panelGroup style="width:80">
<f:verbatim>学籍批次</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:40">
</h:panelGroup>
<h:panelGroup style="width:50">
<f:verbatim>学号</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:40">
</h:panelGroup>
<h:panelGroup style="width:200">
<f:verbatim>内容</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:50">
<f:verbatim>姓名</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:50">
</h:panelGroup>
<h:panelGroup style="width:50">
<f:verbatim>用户名</f:verbatim>
</h:panelGroup>
<h:panelGroup style="width:50">
</h:panelGroup>
<h:panelGroup style="width:200">
<f:verbatim>专业____方向_____</f:verbatim>
</h:panelGroup>
</h:panelGrid>
</h:panelGroup>
</h:form>
</f:view>
</body>
</html>
显示界面如下
这里需要说明的就是
1.这个例子采用客户端自行维护组件状态的策略,在/WEB-INF/web.xml下面增加如下代码片段(JSF默认是服务器端管理控件状态,所以有时候修改了页面代码刷新后发现没有什么效果,换成客户端管理控件就好了)
<!--客户端维护组件状态--> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>client</param-value> </context-param>
2. <f:view>是所有JSF组件的根标记,所有的组件的总Root,可以通过JSF应用上下文FacesContext获取此根组件。
3. 标签上的required代表这个组件的值是否是必须填写的。
4. <f:loadBundle basename="message" var="message" />代表加载一个自定义的message.properties国际化文件,下面代码就是输出了资源文件的内容
<h:outputFormat value="#{message.text}"> <f:param value="hello" /> <f:param value="jimmy" /> </h:outputFormat>
上面代码传递了2个参数,资源文件内容如下
text={0},\u4F60\u597D{1} |
5.在单选框加上layout="pageDirection"表示这个组件整体排列是横竖布局的。这个估计是得自Swing的Grid的布局策略。
6.在单选框上加上layout="lineDirection"表示是横向排列的布局。
7. <h:panelGrid columns="2">表示一个容器,这个就是来自于Swing的grid容器,columns="2"则表示此容器每行只容纳2个组件(或子容器)。
8. <h:outputLink>代表一个静态超链接
<h:outputLink value="ui.faces"> <h:outputText value="超连接" /> <f:param name="name" value="xml"></f:param> </h:outputLink>
在页面上的URL就是http://127.0.0.1:18080/JSFDemo/ui/ui.faces?name=xml
9.在web.xml中可以指定多个JSF配置文件,一般是各个模块自己都会有一个页面导航文件navigation和一个托管bean配置文件,将组件模型与页面流程分开。
<!--配置JSF--> <context-param> <param-name>javax.faces.CONFIG_FILES</param-name> <param-value>/WEB-INF/faces-config.xml,/WEB-INF/faces-config-bean.xml</param-value> </context-param>
发表评论
-
JavaEE5实战笔记05RedHat搭建JBoss、Oracle10g环境
2011-06-01 10:50 1619JavaEE5实战笔记在RedHat上搭建JBoss、Orac ... -
JavaEE5实战笔记02JPA持久层的一些问题
2011-05-30 14:48 16441. JPA关联实体的级联操作问题 在此次联系中 ... -
JavaEE5实战笔记01EJB环境搭建及异常解决
2011-05-30 14:43 50901. 说明 此实战笔记是为了之前的学习笔记做一个 ... -
Spring集成ActiveMQ配置
2011-03-21 20:58 280031. 集成环境 Spring采用2.5.6版本, ... -
JAVA的Mina框架传递对象——一劳永逸(转载)
2011-03-09 11:31 2736接触java的Mina框架已经有很多时间了,在网上也读过了很多 ... -
JavaEE5学习笔记12-JSF验证器使用总结
2011-03-09 00:01 19821. JSF验证器 说完转换器就该说说验证器了, ... -
JavaEE5学习笔记11-JSF转换器使用总结
2011-03-08 23:53 27541. JSF的转换器是在JSF生命周期的第2个阶段 ... -
JSF组件生命周期的讨论
2011-03-08 23:38 17411. JSF生命周期 下面我们来看看JSF组件的 ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(2)
2011-02-28 09:21 1556以上例子只是简单调用了WebService,参数是简单的Str ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(1)
2011-02-28 09:19 41221. 将EJB发布成,或者说暴露成Web服务(也许 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(4)
2011-02-24 09:36 15041. 在JavaEE容器 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(3)
2011-02-24 09:35 12131. 测试代码 部署成功后,在另一个项目中建立测 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(2)
2011-02-24 09:33 1535下面来看针对此实体操作的sessionBean代码。 接口 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(1)
2011-02-24 09:28 1760JPA是JavaEE5提出的一套标准接口,不同的应用服务器对其 ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----2
2011-02-21 15:56 1452除了activationConfig之外,如果使用其他Java ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----1
2011-02-21 15:55 19701. 功能介绍 在EJB的分类中还有一个就是消息驱 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----7
2011-02-21 09:49 13531. EJB的容器式依 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----6
2011-02-21 09:48 1579BMT就是Bean自己管理事务,这种方式就是以硬编码的方式在B ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----5
2011-02-21 09:46 19171. 有状态的会话Bean的本地、远程调用 其实这 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----4
2011-02-21 09:43 1331以上好像还看不出什么,那么咱们开发一个web程序作为测试用例 ...
相关推荐
### JavaEE5学习笔记12-JSF集成AJAX使用经验总结 #### 1. JSF (JavaServer Faces) 概览 JavaServer Faces (JSF) 是 Java EE 的一个重要组成部分,它提供了一种构建用户界面的组件框架。JSF 允许开发者创建可重用的...
hhhhh安卓开发教程大全
avem-labs_Avem_1740990015.zip
微信群机器人管理系统源码 微信群机器人管理系统源码 支持同登陆多个微信 源码类型: C/S 开发环境: VS2010 SQL2008R2 菜单功能 1、支持同时登录多个微信 2、支持机器人聊天(笑话,成语接龙、故事会、智力等等) 3、支持签到 4、可自定义回复 5、可自定义红包语 6、支持定期发送公告(如群规,广告)等 1、WeChatRobots后台配置web版 2、数据库在WeiChartGroup.Net/app_data中,附加即可
https://upload.csdn.net/creation/uploadResources?spm=1003.2018.3001.4314
名字微控制器_STM32_课程_DeepBlue_1740989720.zip
S7-200Smart恒压供水程序示例与485通讯实践:操作指南与案例解析,S7-200 Smart可编程控制器恒压供水程序设计与实现,附带485通讯范例,S7-200Smart 恒压供水程序样例+485通讯样例 ,S7-200Smart; 恒压供水程序样例; 485通讯样例,S7-200Smart程序样例:恒压供水及485通讯应用示例
Java使用JNA、JNI两种不同方式调用DLL、SO动态库方式读写M1卡源码,支持读写M1卡扇区数据、修改IC卡扇区密钥、改写UID卡卡号等功能,支持Windows系统,同时支持龙芯Mips、LoongArch、海思麒麟鲲鹏飞腾Arm、海光兆芯x86_Amd64等架构平台的国产统信、麒麟等Linux系统,内有jna-4.5.0.jar包,vx13822155058 qq954486673
UDP协议接收和发送数据示例JAVA
本文介绍了范德堡大学深脑刺激器(DBS)项目,该项目旨在开发和临床评估一个系统,以辅助从规划到编程的整个过程。DBS是一种高频刺激治疗,用于治疗运动障碍,如帕金森病。由于目标区域在现有成像技术中可见性差,因此DBS电极的植入和编程过程复杂且耗时。项目涉及使用计算机辅助手术技术,以及一个定制的微定位平台(StarFix),该平台允许在术前进行图像采集和目标规划,提高了手术的精确性和效率。此外,文章还讨论了系统架构和各个模块的功能,以及如何通过中央数据库和网络接口实现信息共享。
图像识别”项目源码资源(Python和C++)
虚拟同步电机与并电网模型的Simulink仿真参数配置与直接使用指南,虚拟同步电机与并电网模型的Simulink仿真:参数齐全,直接使用,同步电机simulink仿真 并电网模型仿真 参数设置好了,可直接使用 ,虚拟同步电机; simulink仿真; 并电网模型仿真; 参数设置; 使用,虚拟同步电机Simulink仿真与并电网模型参数化应用
三菱FX3U与力士乐VFC-x610变频器通讯案例详解:PLC控制下的变频器操作与设置程序,含接线方式及昆仑通态触摸屏操作指南,三菱FX3U与力士乐VFC-x610变频器通讯案例详解:接线、设置与程序注解,实现频率设定、启停控制与实时数据读取功能。,三菱FX3U与力士乐VFC-x610变频器通讯程序三菱FX3U与力士乐VFC-x610变频器通讯案例程序,有注释。 并附送程序,有接线方式,设置。 器件:三菱FX3U的PLC,力士乐VFCx610变频器,昆仑通态,威纶通触摸屏。 功能:实现频率设定,启停控制,实际频率读取等。 ,三菱FX3U;力士乐VFC-x610变频器;通讯程序;案例程序;注释;接线方式;设置;频率设定;启停控制;实际频率读取;昆仑通态;威纶通触摸屏。,三菱FX3U与力士乐VFC-x610变频器通讯程序及案例:频率控制与读取实践
xmselect测试用例~~~~~~~~~~~~~~
总共包含 32 款 AAA 级科幻武器。四种武器类型,每种有 8 种不同的纹理变化! 所有内容均采用 PBR 材质,可直接用于开发游戏!
python词云生成器,将txt文本自动分割生成词云图
智慧园区,作为现代城市发展的新形态,旨在通过高度集成的信息化系统,实现园区的智能化管理与服务。该方案提出,利用智能手环、定制APP、园区管理系统及物联网技术,将园区的各类设施与设备紧密相连,形成一个高效、便捷、安全的智能网络。从智慧社区到智慧酒店,从智慧景区到智慧康养,再到智慧生态,五大应用板块覆盖了园区的每一个角落,为居民、游客及工作人员提供了全方位、个性化的服务体验。例如,智能手环不仅能实现定位、支付、求助等功能,还能监测用户健康状况,让科技真正服务于生活。而智慧景区的建设,更是通过大数据分析、智能票务、电子围栏等先进技术,提升了游客的游玩体验,确保了景区的安全有序。 尤为值得一提的是,方案中的智慧康养服务,展现了科技对人文关怀的深刻体现。通过智慧手环与传感器,自动感知老人身体状态,及时通知家属或医疗机构,有效解决了“空巢老人”的照护难题。同时,智慧生态管理系统的应用,实现了对大气、水、植被等环境要素的实时监测与智能调控,为园区的绿色发展提供了有力保障。此外,方案还提出了建立全域旅游营销平台,整合区域旅游资源,推动旅游业与其他产业的深度融合,为区域经济的转型升级注入了新的活力。 总而言之,这份智慧园区建设方案以其前瞻性的理念、创新性的技术和人性化的服务设计,为我们展示了一个充满智慧与活力的未来园区图景。它不仅提升了园区的运营效率和服务质量,更让科技真正融入了人们的生活,带来了前所未有的便捷与舒适。对于正在规划或实施智慧园区建设的决策者而言,这份方案无疑提供了一份宝贵的参考与启示,激发了他们对于未来智慧生活的无限遐想与憧憬。
使用 SignalR 在 .NET Core 8 最小 API 中构建实时通知,构建实时应用程序已成为现代 Web 开发中必不可少的部分,尤其是对于通知、聊天系统和实时更新等功能。SignalR 是 ASP.NET 的一个强大库,可实现服务器端代码和客户端 Web 应用程序之间的无缝实时通信。 参考文章:https://blog.csdn.net/hefeng_aspnet/article/details/145990801
自适应网址导航网站发布页单页网页模板html源码,超级好看自适应清新网址导航网站发布页单页网页模板html源码!无论电脑还是手机,这是一个网页单页源码!! 模板无后台模板,无需数据库,上传服务器直接能用。
不用花钱,不拐弯抹角。