我今天遇到的问题是关于使用 JSF 处理包含的 JSP 中的 HTML。
情况如下:我在 RAD 上使用 IBM 的 JSF 1.2 和 Websphere v6.1 我有一个自定义组件(来自公司层)来使用选项卡。
为了获得更清晰的代码,我只想将每个选项卡的 JSF 代码分离到一个单独的 JSP 中,这样, main.jsp :
<customTag:tabComponent>
<jsp:include page="/jsp/workflow/tab1.jsp"></jsp:include>
<div align="right">
<customTag:switchToTab title="Next" tabValue="2"></customTag:switchToTab>
</div>
</customTag:tabComponent>
还有我的 tab1.jsp :
<!-- Taglibs declared here -->
<f:verbatim>
<div id="myDivId">
<fieldset>
<legend>myLegend</legend>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
</fieldset>
</div>
</f:verbatim>
因此,JSF 组件已被处理,但 HTML 似乎是在 JSF 生成的 HTML 之外处理并出现在之后。就像是
<table>
<!-- generated content -->
</table>
<div id="myDivId">
...
尽管表格应该位于 div 内。我尝试使用<f:verbatim>
标记不同的方式,唯一的解决办法就是包围<div>
and </div>
通过逐字的开始和结束标记,这很脏并且让 Websphere 变得疯狂。
谷歌了一下没有找到相关的信息,请问你们有遇到同样的问题吗?是否可以找到一个干净的解决方案,或者我是否必须将所有代码包含在同一个 JSP 中?提前致谢。
首先,这可以被认为是遗留的 JSF 1.0/1.1 行为。这f:verbatim
确实需要将模板文本放入 JSF 组件树中。但是,那f:verbatim
完全是多余的,因为 2006 年 JSF 1.2 的新视图处理程序会自动将任何模板文本放入其中f:view
进入组件树。那么,你是really使用 JSF 1.2? Websphere 6.1 附带内置的 JSF 1.1 库,升级到 1.2 并不像仅将库放入/WEB-INF/lib
.
至于你的实际问题,你需要换行only模板文本与f:verbatim
,不值得的 JSF 组件。因此,以下内容应该有效:
<f:verbatim>
<div id="myDivId">
<fieldset>
<legend>myLegend</legend>
</f:verbatim>
<h:outputText value="#{myBean.someContent}"></h:outputText>
<!-- HERE are a lot of JSF components, selectItems, inputText... -->
<f:verbatim>
</fieldset>
</div>
</f:verbatim>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)