*/
protected ActionForward doCreate(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{
GuestBookForm msgform = (GuestBookForm)form;
super.validateClientId(request, msgform);
ActionMessages msgs = new ActionMessages();
while(true){
if(StringUtils.isEmpty(msgform.getContent())){
msgs.add("content", new ActionMessage("error.empty_content"));
break;
}
UserBean loginUser = super.getLoginUser(request, response);
if(loginUser==null){
msgs.add("message", new ActionMessage("error.user_not_login"));
break;
}
else if(loginUser.getStatus()!=UserBean.STATUS_NORMAL){
msgs.add("message", new ActionMessage("error.user_not_available"));
break;
}
SiteBean site = super.getSiteByID(msgform.getSid());
if(site==null){
msgs.add("message", new ActionMessage("error.site_not_available"));
break;
}
//��������
if(isUserInBlackList(site, loginUser)){
msgs.add("message", new ActionMessage("error.user_in_blacklist"));
break;
}
GuestBookBean msgbean = new GuestBookBean();
String content = super.autoFiltrate(site,msgform.getContent());
if(content.length()>MAX_GB_COUNT_LENGTH)
content = content.substring(0, MAX_GB_COUNT_LENGTH);
msgbean.setContent(super.filterScriptAndStyle(content));
msgbean.setClient(new ClientInfo(request, 0));
msgbean.setUser(loginUser);
msgbean.setSiteId(site.getId());
try{
GuestBookDAO.createMsg(msgbean);
}catch(HibernateException e){
context().log("undelete diary failed.", e);
msgs.add("message", new ActionMessage("error.database", e.getMessage()));
}
break;
}
if(!msgs.isEmpty()){
saveMessages(request, msgs);
return mapping.findForward("pub");
}
return makeForward(mapping.findForward("list"), msgform.getSid());
}