JSFRequest.java
package com.blogspot.na5cent.jsflibrary.util;
import java.util.Map;
import javax.faces.context.FacesContext;
/**
*
* @author redcrow
* source http://na5cent.blogspot.com/2014/05/jsf-request-for-get-query-string.html
*/
public class JSFRequest {
public static String requestString(String parameterName) {
String request = requestMap().get(parameterName);
if (request == null) {
throw new NullPointerException("request parameter \"" + parameterName + "\" is null.");
}
return request;
}
public static Map<String, String> requestMap() {
return FacesContext
.getCurrentInstance()
.getExternalContext()
.getRequestParameterMap();
}
public static Integer requestInteger(String parameterName) {
return Integer.valueOf(requestString(parameterName));
}
public static Long requestLong(String parameterName) {
return Long.valueOf(requestString(parameterName));
}
public static Float requestFloat(String parameterName) {
return Float.valueOf(requestString(parameterName));
}
public static Double requestDouble(String parameterName) {
return Double.valueOf(requestString(parameterName));
}
public static Boolean requestBoolean(String parameterName) {
return Boolean.valueOf(requestString(parameterName));
}
public static String getQueryString(RequestFilter filter) {
String queryString = "";
Map<String, String> parameterMap = requestMap();
if (parameterMap != null) {
StringBuilder builder = new StringBuilder();
for (Map.Entry<String, String> entry : parameterMap.entrySet()) {
if (filter.filterParam(entry)) {
builder.append("&")
.append(entry.getKey())
.append("=")
.append(entry.getValue());
}
}
queryString = builder.toString();
if (queryString.startsWith("&")) {
queryString = queryString.substring(1);
}
}
return queryString;
}
public static String getQueryString() {
return getQueryString(new RequestFilter() {
@Override
public boolean filterParam(Map.Entry<String, String> entryParam) {
return true;
}
});
}
public static String getQueryStringNotFaces() {
return getQueryString(new RequestFilter() {
@Override
public boolean filterParam(Map.Entry<String, String> entryParam) {
return !entryParam.getKey().startsWith("javax.faces")
&& !entryParam.getKey().startsWith("j_id");
}
});
}
public static abstract class RequestFilter {
public abstract boolean filterParam(Map.Entry<String, String> entryParam);
}
}
Example for get query string of browser
...
...
...
@ManagedBean
@RequestScoped
public class MyManagedBean{
@PostConstruct
public void postConstruct(){
Integer postId = JSFRequest.requestInteger('postId');
//postId = 51
}
}


ไม่มีความคิดเห็น:
แสดงความคิดเห็น