1 6 7 package org.contineo.actions.config; 8 9 import java.util.Iterator ; 10 import java.util.List ; 11 import javax.servlet.http.HttpServletRequest ; 12 import javax.servlet.http.HttpServletResponse ; 13 import javax.servlet.http.HttpSession ; 14 import org.apache.commons.beanutils.BeanUtils; 15 import org.apache.log4j.Level; 16 import org.apache.log4j.Logger; 17 import org.apache.struts.action.Action; 18 import org.apache.struts.action.ActionError; 19 import org.apache.struts.action.ActionErrors; 20 import org.apache.struts.action.ActionForm; 21 import org.apache.struts.action.ActionForward; 22 import org.apache.struts.action.ActionMapping; 23 import org.apache.struts.action.ActionMessage; 24 import org.apache.struts.action.ActionMessages; 25 import org.contineo.core.LoggingManager; 26 import org.contineo.core.SessionManagement; 27 import org.contineo.core.XMLBean; 28 import org.jdom.Element; 29 34 public class SaveSettingsAction extends Action { 35 36 40 private Logger logger; 41 42 43 44 public SaveSettingsAction() { 45 logger = LoggingManager.getLogger(this.getClass()); 46 } 47 48 public ActionForward execute(ActionMapping mapping, 49 ActionForm form, HttpServletRequest request, 50 HttpServletResponse response) { 51 ActionForward actionForward = new ActionForward(); 52 ActionErrors errors = new ActionErrors(); 53 ActionMessages messages = new ActionMessages(); 54 HttpSession session = request.getSession(); 55 if (SessionManagement.isValid(session)) { 56 String category = ""; 57 try { 58 category = BeanUtils.getSimpleProperty(form, "category"); 59 ClassLoader loader = Thread.currentThread().getContextClassLoader(); 60 XMLBean xml = new XMLBean(loader.getResource("settings.xml")); 61 List list = xml.getAllChild("setting", "category", category); 62 Iterator iter = list.iterator(); 63 while (iter.hasNext()) { 64 Element elem = (Element)iter.next(); 65 String value = BeanUtils.getSimpleProperty(form, elem.getAttributeValue("name")); 66 xml.setText(elem, value); 67 } 68 boolean stored = xml.writeXMLDoc(); 69 if (stored) 70 messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("msg.action.savesettings")); 71 } catch (Exception e) { 72 if (logger.isEnabledFor(Level.ERROR)) 73 logger.error(e.getMessage()); 74 errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("errors.action.savesettings")); 75 } 76 actionForward.setPath("/ShowSettings.do?category=" + category); 77 } else 78 actionForward = mapping.findForward("invalid"); 79 saveErrors(request, errors); 80 saveMessages(request, messages); 81 return actionForward; 82 } 83 } 84 | Popular Tags |