Struts
Struts를 정리 한다.
- 홈페이지 : http://struts.apache.org/
- 다운로드 : http://struts.apache.org/download.cgi
- 라이선스 :
- 플랫폼 : Java
GAE용 Struts 환경 설정
- 라이브러리
struts2-core-2.0.12.jar xwork-2.0.6.jar ognl-2.6.11.jar freemarker-2.3.8.jar commons-fileupload.jar commons-io.jar commons-logging.jar //--- 추가로 등록할 라이브러리 javassist.jar
- /WEB-INF/web.xml
- 필터 순서 : struts-cleanup, sitemesh, struts2
<filter> <filter-name>struts-cleanup</filter-name> <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> </filter> <filter-mapping> <filter-name>struts-cleanup</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <listener> <listener-class>com.jopenbusiness.gae.framework.OgnlListener</listener-class> </listener>
- /WEB-INF/classes/struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.action.extension" value="do" /> <constant name="struts.i18n.encoding" value="UTF-8" /> <constant name="struts.multipart.maxSize" value="1073742824" /> <constant name="struts.devMode" value="false" /> <package name="gae-default" abstract="true" extends="struts-default"> </package> <include file="struts-approve.xml"/> </struts>
- /WEB-INF/classes/struts-approve.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="approve" namespace="/approve" extends="gae-default"> <action name="helloWorld" class="com.daou.gae.approve.action.HelloWorldAction"> <result name="success">/jsp/helloWorld.jsp</result> </action> </package> </struts>
- HelloWorldAction.java
package com.daou.gae.approve.action; import com.opensymphony.xwork2.ActionSupport; public class HelloWorldAction extends ActionSupport { private static final long serialVersionUID = -8975313985288714701L; public String execute() throws Exception { return SUCCESS; } }
- /jsp/helloWorld.jsp
<%@ page pageEncoding="UTF-8" %> <%@ page contentType="text/html;charset=UTF-8" %> <html> <head> <title>Hello world!</title> </head> <body> <h2>Hello world!</h2> </body> </html>
- OgnlListener.java
package com.jopenbusiness.gae; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import ognl.OgnlRuntime; public class OgnlListener implements ServletContextListener { public void contextDestroyed(ServletContextEvent arg0) { } public void contextInitialized(ServletContextEvent arg0) { OgnlRuntime.setSecurityManager(null); } }
- freemarker.core.TextBlock.java
- http://localhost:8888/approve/helloWorld.do 로 접속하여 화면을 확인할 수 있다.