下面你可以看到一个返回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;
}
答案 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}”