gpt4 book ai didi

ajax - JSF 2 : access selected value of selectOneMenu in a form BEFORE submit

转载 作者:行者123 更新时间:2023-12-04 18:12:41 28 4
gpt4 key购买 nike

查看

<h:form id="main_form">
<p:inputText id="title" required="true" label="Title" value="#{myBean.myLink.title}" immediate="true" />

<p:selectOneMenu id="scope" required="true" label="Scope" value="#{myBean.myLink.scope}" immediate="true" >
<f:selectItem itemLabel="Please choose" itemValue="" />
<f:selectItems value="#{myBean.availableScopes}" id="selScope"/>
</p:selectOneMenu>

<p:inputText id="link" required="true" label="URL" value="#{myBean.myLink.link}" immediate="true">
<p:ajax event="blur" update="msgLink" listener="#{myBean.checkUrl}" />
</p:inputText>

... msgLink and other (required) elements

... submit button
</h:form>

托管 bean
@Component("myBean")
@Scope("session")
public class MyBean implements Serializable {

private Link myLink;
private Map<String, String> availableScopes;

public MyBean() {
this.availableScopes = new HashMap<String, String>();
this.availableScopes.put("Intranet", "Intranet");
this.availableScopes.put("Internet", "Internet");
}

// setter/getters etc.

public void checkUrl() {
System.out.println(myLink.getTitle()); // works
System.out.println(myLink.getScope()); // DOES NOT work
System.out.println(myLink.getLink()); // works
}

}
  • 我想根据所选范围检查 URL 之前 提交表格。但是被调用的方法可以访问inputText对象的值。不是 selectOneMenu 中选择的值.
  • 我用 getExternalContext().getSessionMap().get("scope") 试过了但当时 SessionMap 为空。

  • 有机会访问组合框的选定值吗?

    谢谢
    吉姆

    最佳答案

    <p:ajax> (和 <f:ajax> )在 UIInput 内组件默认执行/处理 当前 UIInput仅组件( @this ),而不是其他组件。

    如果你想执行/处理所有这些 UIInput当监听器方法被调用时,你应该在 <p:ajax process> 中指定。 (或 <f:ajax execute> )属性:

    <p:inputText id="title" ... />

    <p:selectOneMenu id="scope" ... >
    ...
    </p:selectOneMenu>

    <p:inputText id="link" ...>
    <p:ajax process="title scope link" ... />
    </p:inputText>

    无关 对于具体问题,我想知道所有这些 immediate="true"属性在这种情况下很有用。你确定你需要它们吗?

    关于ajax - JSF 2 : access selected value of selectOneMenu in a form BEFORE submit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12298064/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com