ot; table="Users">
liferay的稍微复杂的一个portlet实例(2)
时间:2009-11-12 javaeye w2c2y2
业务实现编码
现在我们要实现一个查询功能,将数据库中表名users中所有记录的username查询出来,并显示在前台。
打开\ext-service\src\com\ext\portlet\users\service下UsersEntryService文件,建立一个名为getAllUsers的抽象方法;
public List getAllUsers() throws SystemException;
在\ext-impl\src\com\ext\portlet\users\service\impl\UsersEntryServiceImpl.java中实现它.
public List getAllUsers() throws SystemException {
return UsersEntryUtil.findAll();
}
同样spring的service层 也是通过辅助类作为对外唯一入口,所以在UsersEntryServiceUtil里面增加一
个方法getAllUsers作为service层的方法getAllUsers的入口。
public static List getAllUsers() throws SystemException{
return _service.getAllUsers();
}
需要注意的是service层接口对应具体实现是由工厂类指定。他们捆绑关系可以查看spring配置文件信息。
在执行ant 的build-service-portlet-usertest任务已经完成了。
在\src\com\ext\portlet\users\action目录下建立一个ViewUserAction.java文件,完成响应客户端请求。
package com.ext.portlet.users.action;
import com.ext.portlet.users.model.UsersEntryModel;
import com.ext.portlet.users.service.UsersEntryServiceUtil;
import com.liferay.portal.struts.PortletAction;
import java.util.ArrayList;
import java.util.List;
import javax.portlet.PortletConfig;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.WindowState;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class ViewUsersAction extends PortletAction {
public ActionForward render(ActionMapping mapping, ActionForm form,
PortletConfig config, RenderRequest req, RenderResponse res)
throws Exception {
if (req.getWindowState().equals(WindowState.NORMAL)) {
return mapping.findForward("portlet.ext.users.view");
} else {
List users = UsersEntryServiceUtil.getAllUsers();
List usernames = new ArrayList();
for (int i = 0; i < users.size(); i++) {
usernames.add(((UsersEntryModel) users.get(i)).getUsername());
}
req.setAttribute("users", usernames);
req.setAttribute("count", ""+users.size());
return mapping.findForward("portlet.ext.users.view_users");
}
}
}
里面大概功能是如果porlet的窗口状态时普通,则定向到一个叫portlet.ext.myuser.view的目标上。
如果窗口状态是最大化,那么就从调用userLocalServiceUtil,从数据库里面获取所有人员信息。
liferay的稍微复杂的一个portlet实例(3)
时间:2009-11-12 javaeye w2c2y2
Portlet的生成
建立自己的portlet。在\ext-impl\src\com\ext\portlet\users下面新建文件UsersPortlet.java
package com.ext.portlet.users;
import com.liferay.portlet.StrutsPortlet;
import java.io.IOException;
import javax.portlet.PortletException;
import javax.portlet.PortletPreferences;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
public class UsersPortlet extends StrutsPortlet {
public void doView(
RenderRequest renderRequest, Render
|