📄 weblogentryformaction.java
字号:
package org.roller.presentation.weblog.actions;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.HttpURLConnection;import java.net.URL;import java.net.URLConnection;import java.net.URLEncoder;import java.sql.Timestamp;import java.util.ArrayList;import java.util.Arrays;import java.util.Date;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import javax.servlet.ServletException;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import org.apache.commons.lang.StringUtils;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.struts.action.ActionError;import org.apache.struts.action.ActionErrors;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.action.ActionMessage;import org.apache.struts.action.ActionMessages;import org.apache.struts.actions.DispatchAction;import org.roller.RollerException;import org.roller.RollerPermissionsException;import org.roller.model.IndexManager;import org.roller.model.Roller;import org.roller.model.RollerSpellCheck;import org.roller.model.UserManager;import org.roller.model.WeblogManager;import org.roller.pojos.CommentData;import org.roller.pojos.UserData;import org.roller.pojos.WeblogEntryData;import org.roller.pojos.WebsiteData;import org.roller.presentation.MainPageAction;import org.roller.presentation.RollerContext;import org.roller.presentation.RollerRequest;import org.roller.presentation.pagecache.PageCacheFilter;import org.roller.presentation.velocity.PageHelper;import org.roller.presentation.weblog.formbeans.WeblogEntryFormEx;import org.roller.util.Utilities;import com.swabunga.spell.event.SpellCheckEvent;//////////////////////////////////////////////////////////////////////////////** * Supports Weblog Entry form actions edit, remove, update, etc. * * @struts.action name="weblogEntryFormEx" path="/editor/weblog" * scope="request" parameter="method" * * @struts.action-forward name="weblogEdit.page" path="/weblog/WeblogEdit.jsp" * @struts.action-forward name="weblogEntryRemove.page" path="/weblog/WeblogEntryRemove.jsp" */public final class WeblogEntryFormAction extends DispatchAction{ private static Log mLogger = LogFactory.getFactory().getInstance(WeblogEntryFormAction.class); //----------------------------------------------------------------------- /** * Allow user to create a new weblog entry. */ public ActionForward create( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionForward forward = mapping.findForward("weblogEdit.page"); try { RollerRequest rreq = RollerRequest.getRollerRequest(request); if ( rreq.isUserAuthorizedToEdit() ) { WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm; form.initNew(request, response); request.setAttribute("model", new WeblogEntryPageModel(request, response, mapping, (WeblogEntryFormEx)actionForm, WeblogEntryPageModel.EDIT_MODE)); } else { forward = mapping.findForward("access-denied"); } } catch (Exception e) { request.getSession().getServletContext().log("ERROR",e); throw new ServletException(e); } return forward; } //----------------------------------------------------------------------- /** * Allow user to edit a weblog entry. */ public ActionForward edit( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionForward forward = mapping.findForward("weblogEdit.page"); try { RollerRequest rreq = RollerRequest.getRollerRequest(request); if ( rreq.isUserAuthorizedToEdit() ) { WeblogManager wmgr = rreq.getRoller().getWeblogManager(); WeblogEntryData entry = rreq.getWeblogEntry(); WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm; if (entry == null && form.getId() != null) { entry= wmgr.retrieveWeblogEntry(form.getId()); } form.copyFrom(entry, request.getLocale()); request.setAttribute("model", new WeblogEntryPageModel(request, response, mapping, form, WeblogEntryPageModel.EDIT_MODE)); } else { forward = mapping.findForward("access-denied"); } } catch (Exception e) { request.getSession().getServletContext().log("ERROR",e); throw new ServletException(e); } return forward; } //----------------------------------------------------------------------- public ActionForward preview( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // we need to save any new entries before Previewing WeblogEntryFormEx form = (WeblogEntryFormEx)actionForm; if (form.getId() == null) { save(mapping, actionForm, request, response); } return display(WeblogEntryPageModel.PREVIEW_MODE, mapping, actionForm, request, response); } //----------------------------------------------------------------------- public ActionForward returnToEditMode( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { return display(WeblogEntryPageModel.EDIT_MODE, mapping, actionForm, request, response); } //----------------------------------------------------------------------- private ActionForward display( WeblogEntryPageModel.PageMode mode, ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionForward forward = mapping.findForward("weblogEdit.page"); try { RollerRequest rreq = RollerRequest.getRollerRequest(request); if ( rreq.isUserAuthorizedToEdit() ) { request.setAttribute("model", new WeblogEntryPageModel(request, response, mapping, (WeblogEntryFormEx)actionForm, mode)); } else { forward = mapping.findForward("access-denied"); } } catch (Exception e) { request.getSession().getServletContext().log("ERROR",e); throw new ServletException(e); } return forward; } //----------------------------------------------------------------------- /** * Saves weblog entry and flushes page cache so that new entry will appear * on users weblog page. */ public ActionForward save( ActionMapping mapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { ActionForward forward = mapping.findForward("weblogEdit.page"); ActionMessages uiMessages = new ActionMessages(); try { RollerRequest rreq = RollerRequest.getRollerRequest(request); if ( rreq.isUserAuthorizedToEdit() ) { UserManager userMgr = rreq.getRoller().getUserManager(); WeblogManager weblogMgr = rreq.getRoller().getWeblogManager(); UserData user = rreq.getUser(); WebsiteData site = userMgr.getWebsite( user.getUserName() ); WeblogEntryFormEx wf = (WeblogEntryFormEx)actionForm; // I was getting column 'x' cannot be null, so I fixed it here. // A better solution might be to change the table so it allows // nulls for these columns. if (wf.getAllowComments() == null) { wf.setAllowComments(Boolean.FALSE); } if (wf.getRightToLeft() == null) { wf.setRightToLeft(Boolean.FALSE); } if (wf.getPinnedToMain() == null) { wf.setPinnedToMain(Boolean.FALSE); } if (wf.getPublishEntry() == null) { wf.setPublishEntry(Boolean.FALSE); } WeblogEntryData entry = null; if (wf.getId() == null || wf.getId().trim().length()==0) { entry = new WeblogEntryData(); entry.setWebsite( site ); } else { entry = weblogMgr.retrieveWeblogEntry(wf.getId()); entry.save(); // should throw if save not permitted } wf.copyTo(entry, request.getLocale(), request.getParameterMap()); // Fetch MediaCast content type and length mLogger.debug("Checking MediaCast attributes"); if (!checkMediaCast(entry)) { mLogger.debug("Invalid MediaCast attributes"); uiMessages.add(null, new ActionMessage("weblogEdit.message.mediaCastProblem")); } else if (mLogger.isDebugEnabled()) { mLogger.debug("Invalid MediaCast attributes"); } // Store value object (creates new or updates existing) entry.setUpdateTime(new Timestamp(new Date().getTime())); mLogger.debug("Saving entry");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -