java - 出于 "sequentially"要求输入的目的部分提交表单

标签 java jsf jakarta-ee primefaces

我有一个 JSF 页面,用户可以在其中将他们的汽车输入我的数据库。该表单具有三个输入字段:

  • 制造商
  • 模型
  • 注册

我正在使用 PrimeFaces 3.0.M2,ManufacturerModel 字段都是自动完成输入字段:

<p:autoComplete id="manufacturer"
                minQueryLength="3"
                completeMethod="#{carController.completeManufacturer}"
                forceSelection="true"
                value="#{carController.manufacturer}" />

模型的字段看起来相同,但值明显略有不同。

托管 bean 如下所示(略有缩写):

private String manufacturer;
private String model;
private String registration;

public List<String> completeManufacturer(String query) {
    List<String> ms = new ArrayList<String>();
    for (Manufacturer m : manufacturerFacade.findAllByName(query)) {
        ms.add(m.getLongName());
    }
    return ms;
}

public List<String> completeModel(String query) {
    List<String> ms = new ArrayList<String>();
    for (Model m :
            modelFacade.findAllByManufacturer(manufacturerFacade.findByName(manufacturer))) {
        ms.add(m.getShortName());
    }
    return ms;
}

问题在于完成 model 字段。我需要此字段仅显示基于所选制造商的自动完成结果,但托管 bean 中的 manufacturer 字符串在提交整个表单之前不会被填充,因此我无法查找模型与所选制造商相关联。

如何只提交 manufacturer 字段,而不提交整个表单,以便我可以查找所选制造商的型号?

谢谢!

最佳答案

只需添加一个 selectListener,如下所示:

<p:autoComplete id="manufacturer"
                minQueryLength="3"
                completeMethod="#{carController.completeManufacturer}"
                forceSelection="true"
                selectListener="#{carController.manufacturerSelected}"
                value="#{carController.manufacturer}" />

然后在 Controller 中:

public void manufacturerSelected(SelectEvent vce) {
    String nameOfSelected = vce.getObject().toString();
    // whatever logic comes to your mind
}

关于java - 出于 "sequentially"要求输入的目的部分提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202457/

相关文章:

java - 从外部源加载 HTML 的 JSF 标记

JSF 注销其他用户,同时保持我的事件 session 。

java - 如何使用selenium处理页面挂起?

java - 使用 SimpleDateFormat 在 Java 中格式化 JavaScript jQuery 日期格式

java - 你如何在java中取消编码单引号和双引号?

java - Spring安全基础知识

jakarta-ee - JPA 多对多 transient 集合

java - 如何优先选择来自 Weblogic 域的 JAR 而不是来自 weblogic 系统的 JAR

java - 与 MVC Servlet/JSP 应用程序相比,Java EE 应用程序如何扩展?

java - 声明 'FLAG_ACTIVITY_NO_ANIMATION' 后出现 NullPointerException 警告