在 jsf 1.2 中使用 a4j:support
Using a4j:support with jsf 1.2
我需要在 h:selectonemenu 上进行一些保存操作。当它的值改变时,它应该保存这个值,但没有页面刷新(所以没有提交)。
不幸的是,我必须使用 jsf 1.2。经过一些研究,我发现它可以用 a4j:support 完成,但是我不知道如何将它包含到我的项目中。我需要下载一些旧的 richfaces 库吗? (据我所知,richfaces 4 不支持 jsp 语法)。或者是否存在其他实现此目标的方法??
1.您可以使用 Richfaces 3.3.4.Final(下载 here)。
This 是您应该在项目中包含、注册和使用库的方式。注意:
A JSF application with RichFaces assumes that the following JARs are available in the project: commons-beanutils-1.7.0.jar, commons-collections-3.2.jar, commons-digester-1.8.jar, commons-logging-1.0.4.jar, jhighlight-1.0.jar.
您案例的示例(来自 developer guide):
<h:form id="planetsForm">
<h:outputLabel value="Select the planet:" for="planets" />
<h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
<f:selectItems value="#{planetsMoons.planetsList}" />
<a4j:support event="onchange" reRender="moons" />
</h:selectOneMenu>
<h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
<h:column>
<h:outputText value="#{item}"/>
</h:column>
</h:dataTable>
2。其他解决方案示例:
您可以将 jQuery.ajax() 与自定义 servlet 结合使用。
JS:
$.ajax({
type: 'GET',
url: '/app/customservlet.jsf?value=' + selectOneValue; //selected value
});
Servlet:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
String selectOneValue = req.getParameter("value");
//do something
}
我需要在 h:selectonemenu 上进行一些保存操作。当它的值改变时,它应该保存这个值,但没有页面刷新(所以没有提交)。
不幸的是,我必须使用 jsf 1.2。经过一些研究,我发现它可以用 a4j:support 完成,但是我不知道如何将它包含到我的项目中。我需要下载一些旧的 richfaces 库吗? (据我所知,richfaces 4 不支持 jsp 语法)。或者是否存在其他实现此目标的方法??
1.您可以使用 Richfaces 3.3.4.Final(下载 here)。
This 是您应该在项目中包含、注册和使用库的方式。注意:
A JSF application with RichFaces assumes that the following JARs are available in the project: commons-beanutils-1.7.0.jar, commons-collections-3.2.jar, commons-digester-1.8.jar, commons-logging-1.0.4.jar, jhighlight-1.0.jar.
您案例的示例(来自 developer guide):
<h:form id="planetsForm">
<h:outputLabel value="Select the planet:" for="planets" />
<h:selectOneMenu id="planets" value="#{planetsMoons.currentPlanet}" valueChangeListener="#{planetsMoons.planetChanged}">
<f:selectItems value="#{planetsMoons.planetsList}" />
<a4j:support event="onchange" reRender="moons" />
</h:selectOneMenu>
<h:dataTable id="moons" value="#{planetsMoons.moonsList}" var="item">
<h:column>
<h:outputText value="#{item}"/>
</h:column>
</h:dataTable>
2。其他解决方案示例:
您可以将 jQuery.ajax() 与自定义 servlet 结合使用。
JS:
$.ajax({
type: 'GET',
url: '/app/customservlet.jsf?value=' + selectOneValue; //selected value
});
Servlet:
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse res) {
String selectOneValue = req.getParameter("value");
//do something
}