Seam的JSF控件(一)

为了使用这些tagsd,要在你的页面中定义“s”命名空间如下(只用于Facelets):

<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://jboss.com/products/seam/taglib">

ui的例子,示范了这其中许多标签的用法。

Table 29.1. Seam的JSF控件参考

<s:button>

描述

通过控制对话传播支持动作调用的按钮。不提交表单。

属性

  • value — 标签

  • action — 指定动作监听者的一种方法绑定。

  • view — 链接的JSF view id。

  • fragment — 链接的fragment标识符。

  • disabled — 该链接处于取消状态吗?

  • propagation — 确定对话传播风格:beginjoinnestnone 或者 end

  • pageflow — 起始的页面流定义。 (这只在 propagation="begin" 或者 propagation="join" 的时候才有用。)

用法

<s:button id="cancel" value="Cancel"
action="#{hotelBooking.cancel}"/>

<s:cache>

描述

利用JBoss的Cache缓存渲染过的页面片断。 注意 <s:cache> 实际上使用由内建的 pojoCache 组件管理的JBoss Cache的实例。

属性

  • key — 是缓存渲染过的内容的键,经常是一个值表达式。 例如,如果我们在缓存一个显示文档的页面片断,我们可以使用 key="Document-#{document.id}"

  • enabled — 是一个值表达式,决定是否应该使用缓存。

  • region — 是一个要使用的JBoss Cache节点(不同的节点可以有不同的过期策略)。

Usage 用法

<s:cache key="entry-#{blogEntry.id}" region="pageFragments">
<div class="blogEntry">
<h3>#{blogEntry.title}</h3>
<div>
<s:formattedText value="#{blogEntry.body}"/>
</div>
<p>
[Posted on&#160;
<h:outputText value="#{blogEntry.date}">
<f:convertDateTime timezone="#{blog.timeZone}" locale="#{blog.locale}"
type="both"/>
</h:outputText>]
</p>
</div>
</s:cache>

<s:conversationId>

描述

将对话id添加到一个输出链接(或者类似的JSF控件)。只用于Facelets。

属性

无。

<s:conversationPropagation>

描述

给一个命令链接或者按钮定制对话传播(或者类似的JSF控件)。只用于Facelets。

属性

  • propagation — 确定对话传播风格;beginjoinnestnone 或者 end

  • pageflow — 是一个起始页面流定义。 (这只在 propagation="begin" 或者 propagation="join" 的时候才有用。)

用法

<h:commandButton value="Apply" action="#{personHome.update}">
<s:conversationPropagation type="join" />
</h:commandButton>

<s:convertDateTime>

描述

在Seam的timezone中执行日期或者时间对话。

属性

无。

用法

<h:outputText value="#{item.orderDate}">
<s:convertDateTime type="both" dateStyle="full"/>
</h:outputText>

<s:convertEntity>

描述

给当前的组件分配一个实体转换器。这主要对单选按钮和下拉控件有用。

转换器使用任何具有 @Id 注解(简单的或者复合的)的受控实体。

属性

无。

配置

你必须通过 <s:convertEntity /> 使用 Seam管理的事务 (请见Section 8.2, “Seam管理的事务”

如果你的 受控持久化上下文 不是称作 entityManager,那你就需要在 components.xml 中设置它:

<component name="org.jboss.seam.ui.EntityConverter">
<property name="entityManager">#{em}</property>
</component>

如果你想在实体转换器上使用不止一个实体管理器,你可以在componets.xml中为每一个实体管理器创建一份实体转换器。

<component name="myEntityConverter" class="org.jboss.seam.ui.converter.EntityConverter">
<property name="entityManager">#{em}</property>
</component>
<h:selectOneMenu value="#{person.continent}">
<s:selectItems value="#{continents.resultList}" var="continent"
label="#{continent.name}" />
<f:converter converterId="myEntityConverter" />
</h:selectOneMenu>

用法

<h:selectOneMenu value="#{person.continent}" required="true">
<s:selectItems value="#{continents.resultList}" var="continent"
label="#{continent.name}"
noSelectionLabel="Please Select..."/>
<s:convertEntity />
</h:selectOneMenu>

<s:convertEnum>

描述

给当前的组件分配一个enum转换器。这主要对单选按钮和下拉控件有用。

属性

无。

用法

<h:selectOneMenu value="#{person.honorific}">
<s:selectItems value="#{honorifics}" var="honorific"
label="#{honorific.label}"
noSelectionLabel="Please select" />
<s:convertEnum />
</h:selectOneMenu>

<s:decorate>

描述

在验证失败或者设置了 required="true" 时,“装饰”一个JSF输入域。

属性

  • template — 用来装饰组件的Facelets模板。

#{invalid}#{required} 可以在 s:decorate 内使用; 如果你按要求设置了正被装饰的输入组件,#{required} 就取值为 true, 并且如果发生校验错误, #{invalid} 取值为 true

用法

<s:decorate template="edit.xhtml">
<ui:define name="label">Country:</ui:define>
<h:inputText value="#{location.country}" required="true"/>
</s:decorate>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib">

<div>

<s:label styleClass="#{invalid?'error':''}">
<ui:insert name="label"/>
<s:span styleClass="required" rendered="#{required}">*</s:span>
</s:label>

<span class="#{invalid?'error':''}">
<s:validateAll>
<ui:insert/>
</s:validateAll>
</span>

<s:message styleClass="error"/>

</div>

</ui:composition>

<s:div>

描述

渲染一个HTML<div>

属性

无。

用法

<s:div rendered="#{selectedMember == null}">
Sorry, but this member does not exist.
</s:div>

<s:enumItem>

描述

从一个enum值中创建一个 SelectItem

属性

  • enumValue — 是enum值的字符串表示法。

  • label — 在渲染 SelectItem 时要使用的标签。

用法

<h:selectOneRadio id="radioList"
layout="lineDirection"
value="#{newPayment.paymentFrequency}">
<s:convertEnum />
<s:enumItem enumValue="ONCE" label="Only Once" />
<s:enumItem enumValue="EVERY_MINUTE" label="Every Minute" />
<s:enumItem enumValue="HOURLY" label="Every Hour" />
<s:enumItem enumValue="DAILY" label="Every Day" />
<s:enumItem enumValue="WEEKLY" label="Every Week" />
</h:selectOneRadio>

<s:fileUpload>

描述

渲染一个文件上载控件。这个控件必须通过在form中使用 multipart/form-data 的编码类型,例如:

<h:form enctype="multipart/form-data">

对于多部分请求,也必须在 web.xml 中配置Seam Multipart Servlet过滤器:

<filter>
<filter-name>Seam Filter</filter-name>
<filter-class>org.jboss.seam.servlet.SeamFilter</filter-class>
</filter>

<filter-mapping>
<filter-name>Seam Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

配置

下列多部分请求的配置选项可以在 components.xml 中进行配置:

  • createTempFiles — 如果这个选择设置为true,上载好的文件就流向一个临时文件,而不是流向内存。

  • maxRequestSize — 允许上载文件的最大字节数。

下面是一个例子:

<component class="org.jboss.seam.web.MultipartFilter">
<property name="createTempFiles">true</property>
<property name="maxRequestSize">1000000</property>
</component>

属性

  • data — 这个值绑定接收二进制文件数据。 接收域应该声明为一个 byte[] 或者 InputStream (必要)。

  • contentType — 这个值绑定接收文件的内容类型(可选)。

  • fileName — 这个值绑定接收的文件名(可选)。

  • fileSize — 这个值绑定接收的文件大小(可选)。

  • accept — 可以接受的一个以逗号分隔的内容类型列表,可能浏览器不支持。 例如 "images/png,images/jpg""images/"

  • style — 控件的样式,即CSS之类的

  • styleClass — 控件的样式类

用法

<s:fileUpload id="picture" data="#{register.picture}"
accept="image/png"
contentType="#{register.pictureContentType}" />

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值