这对于专业人士来说应该很容易:
我正在使用 JSF/Facelets/Seam 并尝试显示单选按钮。然后,在用户单击其中一个按钮后,应保存该值并立即将用户重定向到另一个页面(即无需单击提交按钮)。
单选按钮有效,但不能转发。
谢谢
最佳答案
您确实可以使用 Richfaces 添加 a4j:support component :
<h:selectOneRadio value="#{myBean.myValue}" ...>
...
<a4j:support event="onclick" action="#{myBean.doSomething}"/>
</h:selectOneRadio>
在您的 Java 代码中:
public String doSomething() {
// Your code goes here...
...
// Now, we move to the new page.
return "some-outcome";
}
但是,如果您不能(或不想)添加新库,您可以使用旧方法:
<h:selectOneRadio value="#{myBean.myValue}" ... onclick="this.form.submit();" valueChangeListener="#{myBean.doSomething}">
...
</h:selectOneRadio>
此代码将在检测到 onclick Javascript 事件时提交包含单选按钮的表单。在服务器端, Action doSomething 将被执行。 在该方法中,您可以制定要执行的导航规则:
public void doSomething(ValueChangeEvent evt) {
// Your code goes here...
...
// Now, we move to another page...
FacesContext context = FacesContext.getCurrentInstance();
NavigationHandler navigation = context.getApplication().getNavigationHandler();
navigation.handleNavigation(context, "", "some-outcome");
}
其中 some-outcome 是在 faces-config.xml 中的导航规则中定义的结果。
关于java - 单击后立即执行 selectOneRadio 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/480975/