我有一个xml文件,我想要在jsf代码页中进行转换。为此,我创建了一个xsl文件。XSLT,JSTL e JSF
XML:
<?xml version='1.0' encoding='ISO-8859-1'?>
<questionario xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xsi:noNamespaceSchemaLocation='Schema2.xsd'>
<componente nome='input'>
<id>input1</id>
</componente>
<componente nome='input'>
<id>input2</id>
</componente>
</questionario>
代码:
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x" %>
<c:set var="xml" value="${questionarioXSLBean.xml}"/>
<c:set var="xsl">
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
exclude-result-prefixes="f h">
<xsl:template match="/">
<xsl:for-each select="questionario/componente">
<xsl:if test="attribute::nome = 'input'">
<xsl:variable name="id">
<xsl:value-of select="id" />
</xsl:variable>
<h:inputText id="{$id}"/>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
</c:set>
<x:transform xml="${xml}" xslt="${xsl}" />
的问题是,没有任何显示在我的屏幕,因为<h:inputText id="input1"/>
生成的代码<h:inputText id="input_1" xmlns:h="http://java.sun.com/jsf/html"/>
我怎能取代的xmlns:H =” http://java.sun.com/jsf/html“或抑制它。
谢谢!
更新:让我澄清一下我想做的事情。我想根据xml文件的属性动态生成一个jsf页面,例如,2个输入文本,3个复选框等等。为了转换为jsf,我认为有两种方法,一种使用jstl,另一种使用xslt。前者的问题是我无法将jstl与jsf代码(使用jstl变量设置jsf组件属性)以及最后一种方法集成,我正面临上述问题。我不想在java(UIComponents)。有什么建议么?
url模式是正确的,问题出在转换过程中。当我试图在bean中进行这样的过程时,我也得到了 ,但我可以将其视为一个字符串并压制这些不需要的内容。但我无法在jsf页面中写入字符串的内容,并让它在飞行中更新其内容。 –
2010-10-08 17:04:25