有两部组成,后台java代码,和前台jsp代码
第一部份:java代码清单
package com.cwebs.app.MySQLPortlet;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.ModelAndView;
/**
* Des
* 如何进行数据提交
* @author lijun
* Env
* [1]Spring(portlet) 2.5.6
*
* Ref
* [1]spring 2.5 mvc 提交多行数据 到 Controller
* http://hi.baidu.com/zuoboy/item/de7b52d456566e1c20e2508f
*/
@Controller
@RequestMapping("EDIT")
public class EditController {
static Logger logger = Logger.getLogger(EditController.class.getName());
@RequestMapping // default (action=list)
public ModelAndView list(RenderRequest request,RenderResponse response
) throws Exception{
UserPreference up = (UserPreference)request.getPortletSession().getAttribute("up");
//改为从数据库中取
if(up==null)
up = new UserPreference();
//返回给视图
ModelAndView mav = new ModelAndView("MySQLPortlet_Edit");
mav.addObject("up",up);
mav.addObject("msg","");
return mav;
}
@RequestMapping(params = {"action=save"})
public void save(ActionRequest request,
@ModelAttribute("up") UserPreference up,
ActionResponse response)
throws Exception {
if(up!=null)
{
//改为写数据库
request.getPortletSession().setAttribute("up", up);
logger.debug("up.getColumnWidths()=" + up.getColumnWidths());
}
response.setRenderParameter("action", "list");
}
}
第二部份:jsp代码清单
<%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/WEB-INF/jsp/include.jsp" %>
<portlet:actionURL var="actionURL" />
<h3>偏好设置</h3>
<font color=#669999>${msg}</font>
<hr/>
<form:form action="${actionURL}" method="post" commandName="up">
<input type="hidden" name="action" value="save"/>
<table>
<tr>
<th>表格中每列的宽度</th>
<td><form:input path="columnWidths" /></td>
</tr>
<tr>
<td colspan="2">例如32,64表示共两列,第一列宽32像素,第二列宽64像素</td>
</tr>
<tr>
<td colspan="2">
<input type="submit" value="保存"/>
</td>
</tr>
</table>
</form:form>
<h3>Portlet URLs</h3>
<ul>
<li><a href="<portlet:renderURL portletMode="view" />">View Mode</a>
<li><a href="<portlet:renderURL portletMode="edit" />">Edit Mode</a>
<li><a href="<portlet:renderURL portletMode="help" />">Help Mode</a>
<li><a href="<portlet:renderURL windowState="normal" />">Normal State</a>
<li><a href="<portlet:renderURL windowState="maximized" />">Maximized State</a>
<li><a href="<portlet:renderURL windowState="minimized" />">Minimized State</a>
</ul>