将方法用作JSF页面中的函数

时间:2013-12-16 12:06:40

标签: jsf

下面你可以看到一个返回IP地址的方法。

我想在JSF页面中使用它。我怎样才能做到这一点?

public static String getClientIpAddr(HttpServletRequest request) {  
  HttpServletRequest request = (HttpServletRequest)    FacesContext.getCurrentInstance().getExternalContext().getRequest();
  String ipAddress = request.getHeader("X-FORWARDED-FOR");
  if (ipAddress == null) {
      ipAddress = request.getRemoteAddr();
  }
  return ipAddress;
}

3 个答案:

答案 0 :(得分:1)

您的java函数具有多个变量名称。 查看函数参数(请求)和本地变量名称请求。

删除函数参数,因为你从facesContext中获取它。

您可以通过以下视图中的直接函数调用来访问结果:

<h:outputText value="#{myBean.getClientIpAddr()}" />

答案 1 :(得分:1)

如果您只需要处理请求以在视图中显示IP,您甚至不需要从托管bean调用方法,您可以直接在Facelet中执行此操作:

<p>
    IP of request: #{empty header['X-FORWARDED-FOR'] ? request.remoteAddr : header['X-FORWARDED-FOR']}
</p>

答案 2 :(得分:-1)

这是怎么回事: “#{request.getHeader('X-FORWARDED-FOR')!= null?request.getHeader('X-FORWARDED-FOR'):request.remoteAddr}”