java - 单击后立即执行 selectOneRadio 操作

标签 java jsf seam

这对于专业人士来说应该很容易:

我正在使用 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/

相关文章:

java:25: 类、接口(interface)或枚举预期 public static void main(String s[]) {

java - 如何从两个编辑文本中获取选定数值的总和

eclipse - 在 xhtml 页面中显示 jsf 组件

java - 将实体移动到外部 jar 包后未映射的实体

hibernate - 在持久化实体之前检查约束违规

xhtml - 为什么这些 Seam 字段值不具有约束力?

java - 如何调试<jsp :include> tag?

POJO的Java设计理念

java - 关于 JSF 2.0 自定义组件和 Primefaces 的帮助

java - 从多个 portlet 访问 Util jar 中的 FacesContext