当前位置: 网学 > 编程文档 > JSP > 正文

JSP和JSF联合打造完美Web应用

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/17
下载{$ArticleTitle}原创论文样式
hangeListener type="tempconv.page.TCChangedListener"/>

  < /h:inputText>

  < /span>

  < /div>

  < div>

  < h:outputText id="celsiusLabel" value="摄氏温度:"/>

  < span>

  < h:outputText id="celsiusValue" value="#{tc.celsiusTemp}">

  < f:convertNumber maxFractionDigits="3" type="number"/>

  < /h:outputText>

  < /span>

  < /div>

  < div>

  < h:commandButton value="转换" action="#{tc.convert}">

  < /h:commandButton>

  < /div>

  < /h:form>

  < /f:view>

  < /body>

  < /html>

  在程序的前两行是导入JSF核心库和HTML库,这个在前面已经讨论过,在这里不再详述。

  下面让我们来看看JSF标签是如何同后端进行交互的。由于我们是在JSP中使用JSF,因此,这个和正常的JSP没有什么区别;JSP实际上就是Servlet,在JSP第一次运行时由JSP编译器将.JSP文件编译成Servlet后再由Servlet调用,然后由Servlet来接收客户端传过来的数据流。但和一般的JSP程序不同的是,JSF标签是由JSF API负责调用的(这样可以做到逻辑层和表现层分离),除此之外,它们和一般的JSP标签没有任何区别。

  当UIComponent标签收到doStartTag方法时,JSF将使用这些属性来设置标签的值。如本例中的inputText标签将按它的属性值来设置。下面是JSF的代码片段。

  

      < h:inputText id="temperature" value="#{tc.fahrenheitTemp}">

  < f:validateDoublerange minimum="-100.0" maximum="100.0"/>

  < f:valuechangeListener type="tempconv.page.TCChangedListener"/>

  < /h:inputText>

  inputText标签根据相应的值设置了id和value的属性。在JSF中是通过setAttribute(String name, Object value)设置每一个属性值的。但我们需要注意的是JSF标签可以指定相应的默认值。这有些类似java中的系统属性,如果你给了一个属性名子,那系统将返回这个属性的值,如果指定它的默认值,并且这个属性不存在的话,将返回这个默认值。

  接下来让我们来看看上面程序的最重要的部分,也就是UIInput组件的事件处理。

  < f:valuechangeListener type="tempconv.page.TCChangedListener"/>

  在JSF中事件处理是由valuechangeListener标签完成的。这个标签所表示的事件在文本框的值发生变化时引发事件。但有意思的是这个事件并不马上提交,而是要等到用户点击"提交"按钮后这个事件连同相应的数据才提交给后端。因此,这个事件请求也叫做预提交。最后,让我们看看UICommand的代码实现。

  

      < div>

  < h:commandButton value="转换" action="#{tc.convert}">

  < /h:commandButton>

  < /div>

  上面的代码将convert()方法和UICommand连接了起来,也就是说,点击"提交"按钮后,将执行convert()方法。在遇到view标签后,JSF程序结果,JSFAPI最后调用doEnd方法来结束JSF程序。JSF引擎在解析这段程序后,将相应的JSF标签转换为HTML组件。

  最后,让我们来看看J

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号