JSF 2.2页面,支持bean,页面呈现?

时间:2017-10-24 02:09:30

标签: jsf primefaces

我有一个要求,即在JSF 2.2页面上输入2个输入值。我们正在使用Primefaces控件。然后通过h:command按钮将这些值提交给托管bean方法。

然后,基于这些值,我想在同一个JSF页面上将一个单独的输出字段设置为一个特定的值。

所以我现在的问题是尝试连接托管bean,以便在我的JSF页面上返回一个返回字段的值,在本例中,字段名称为mgrs。主要问题是我正在处理的是产生返回值的第三方库,我不确定如何与这个库接口的最佳方法,以便我可以从中返回我需要的值。同样从我的JSF页面中,从命令按钮获取bean代码值的最佳方法是什么?

以下是我的JSF页面的工作部分

     <p:panel id="horizontal" header="Horizontal Toggle" toggleable="true" 
      toggleOrientation="horizontal">
     <h:panelGrid columns="2" cellpadding="10" styleClass="left">

     <h:outputLabel for="basic" value="Enter Latitude:" />
     <p:inplace id="lat">
      <p:inputText value="Latitude" />
     </p:inplace>

      <h:outputLabel for="basic" value="Enter Longitude:" />
      <p:inplace id="long">
        <p:inputText value="Longitude" />
       </p:inplace>

       <p:inplace id="mgrs">
        <p:inputText value="Longitude" />
       </p:inplace>

       <h:commandButton actionlistener="#{coordinates.mgrsFromLatLon(lat, long)}"  update="mgrs" />

以下是第三方API:

  package com.berico.coords;

  import gov.nasa.worldwind.geom.Angle; 
  import gov.nasa.worldwind.geom.coords.MGRSCoord;
  import javax.faces.bean.ManagedBean;

  @ManagedBean(name="coordinates")

  public class Coordinates {

public static String mgrsFromLatLon(double lat, double lon){

    Angle latitude = Angle.fromDegrees(lat);

    Angle longitude = Angle.fromDegrees(lon);

    return MGRSCoord
            .fromLatLon(latitude, longitude)
            .toString();
}

public static double[] latLonFromMgrs(String mgrs){

    MGRSCoord coord = MGRSCoord.fromString(mgrs);

    return new double[]{ 
        coord.getLatitude().degrees, 
        coord.getLongitude().degrees 
    };
}

}

1 个答案:

答案 0 :(得分:-1)

是为什么不是很简单。

JSF页面中的更改

  1. 将您的元素放在<h:panelGrid/>或类似的组件中。
  2. id
  3. 提供一个<h:panelGrid id="panelID"/>
  4. 使用bean中的变量绑定<h:outputtext/>
  5. <h:outputtext rendered="#{bean.showOutputBox}" />
  6. 中使用呈现属性
  7. 现在,在您的按钮中,操作使用render属性,并在{strong> Step2
  8. 中添加pandelgrid的ID

    Java / bean端的更改

    1. 使用showOutputBox = false方法创建变量(布尔值)get/set

    2. 当你点击sumbit方法调用bean中的一个动作时,在那个动作方法中使这个(上面)声明变量true休息JSF会照顾。