📄 onpageloadlistener.java
字号:
/**
*
*/
package com.ibm.gbsc.cte.sample;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.ibm.faces.webapp.ValueResourcePhaseListener;
/**
* @author Kyle
*
*/
public class OnPageLoadListener extends ValueResourcePhaseListener {
private static final long serialVersionUID = -1062767280575489128L;
protected final static Log logger = LogFactory
.getLog(OnPageLoadListener.class);
public void afterPhase(PhaseEvent phaseEvent) {
// get faces context
FacesContext facesContext = phaseEvent.getFacesContext();
// get request view id
String viewId = phaseEvent.getFacesContext().getViewRoot().getViewId();
// first request view id
// if (viewId.endsWith(".jsp")) {
String managedBeanName = getManagedBeanNameFromView(getLaskName(viewId));
if (managedBeanName == null)
logger.error("Parse managed bean error.");
Object object = facesContext.getApplication().createValueBinding(
"#{" + managedBeanName + "}").getValue(facesContext);
if (object == null)
logger
.error("OnPageLoad cannot be executed, no such managed bean:"
+ managedBeanName);
else if (object instanceof IOnPageLoad) {
IOnPageLoad lifeCycleAwareBean = (IOnPageLoad) object;
lifeCycleAwareBean.onPageLoad(facesContext);
}
// }
super.afterPhase(phaseEvent);
}
/**
* @param viewId
* @return
*/
public String getManagedBeanNameFromView(String viewId) {
String pageName = null;
if (viewId.endsWith(Constants.EXT_FACES))
pageName = viewId.substring(1, viewId.length() - Constants.EXT_FACES.length());
else if (viewId.endsWith(Constants.EXT_JSP))
pageName = viewId.substring(1, viewId.length() - Constants.EXT_JSP.length());
return "pc_" + OnPageLoadListener.capitalize(pageName);
}
/**
* Capitalize the first word and trim whitespaces.
* @param message the message which should be formatted.
* @return formated message
*/
public static String capitalize(String message) {
message = message.trim();
if (message.equals(""))
return message;
StringBuilder buffer = new StringBuilder(message);
char first = buffer.charAt(0);
if (!Character.isUpperCase(first))
buffer.setCharAt(0, Character.toUpperCase(first));
return buffer.toString();
}
/**
* get the real file name, and the real path is not included.
* @param message
* @return
*/
public static String getLaskName(String message){
String result = message;
int i = message.lastIndexOf("/");
result = message.substring(i,result.length());
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -