📄 counterportlet.java
字号:
package com.jdlssoft.portal.counter.portlets;
import java.io.IOException;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.GenericPortlet;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.PortletRequestDispatcher;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import com.jdlssoft.portal.counter.service.CounterService;
import com.jdlssoft.portal.counter.service.CounterServiceLocator;
public class CounterPortlet extends GenericPortlet{
public static final String JSP_FOLDER = "/jsp/"; // JSP folder name
public static final String JSP_COUNTER_VIEW="counter/counterView";
public static final String JSP_COUNTER_EDITOR="counter/counterEditor";
public static final String COUNTER_REFRESH="COUNTER_REFRESH";
public static final String COUNTER_FORM="COUNTER_FORM";
public static final String UPDATE_COUNTER_ACTION="UPDATE_COUNTER_ACTION";
/************* ACTION END ****************/
public static CounterService counterService=CounterServiceLocator.getCounterService();
/**
* 在这里可以加载portlet配置文件里面的初始化数据
* WEB-INF/portlet.xml
*/
public void init(PortletConfig config) throws PortletException{
super.init(config);
}
/**
* 重载doView方法,写实际逻辑。
* 不能从ActionRequest获得 jsp页面提交的数据,要通过processAction转化以下才可以获得,
* 但是可以直接把数据传到jsp层
*/
public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
// Set the MIME type for the render response
response.setContentType(request.getResponseContentType());
//Invoke the JSP to render
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(getJspFilePath(request, JSP_COUNTER_VIEW));
rd.include(request,response);
}
/**
* Portlet 的编辑模式,在里面可以处理一些需要展示的内容处理
*/
public void doEdit(RenderRequest request, RenderResponse response) throws PortletException, IOException {
// Set the MIME type for the render response
response.setContentType(request.getResponseContentType());
request.setAttribute("operResult", request.getParameter("operResult"));
//Invoke the JSP to render
PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(getJspFilePath(request, JSP_COUNTER_EDITOR));
rd.include(request,response);
}
/**
* 该方法会在执行doview方法之前执行,可以从ActionRequest获得 jsp页面提交的数据,
* 但是不能把数据传到jsp层
*/
public void processAction(ActionRequest request, ActionResponse response) throws PortletException, java.io.IOException {
String actionName = request.getParameter("actionName");
String operResult=null;
if(actionName!=null && actionName.equalsIgnoreCase(UPDATE_COUNTER_ACTION)){
operResult=null;
String counter=request.getParameter("counter");
int c=0;
try{
c=Integer.parseInt(counter);
}catch(NumberFormatException e){}
boolean flag=counterService.updateCounter(c);
if(flag)
operResult="更新成功";
else
operResult="更新失败";
}
response.setRenderParameter("operResult", operResult);
response.setRenderParameter("actionName", actionName);
}
/**
* Returns JSP file path.
*
* @param request Render request
* @param jspFile JSP file name
* @return JSP file path
*/
private static String getJspFilePath(RenderRequest request, String jspFile) {
String markup = request.getProperty("np.markup");
if( markup == null )
markup = getMarkup(request.getResponseContentType());
return JSP_FOLDER+markup+"/"+jspFile+"."+getJspExtension(markup);
}
/**
* Convert MIME type to markup name.
*
* @param contentType MIME type
* @return Markup name
*/
private static String getMarkup(String contentType) {
if( "text/vnd.wap.wml".equals(contentType) )
return "wml";
return "html";
}
/**
* Returns the file extension for the JSP file
*
* @param markupName Markup name
* @return JSP extension
*/
private static String getJspExtension(String markupName) {
return "jsp";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -