Struts

오픈소스 비즈니스 컨설팅
둘러보기로 가기 검색하러 가기

Struts를 정리 한다.


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

사용자 가이드

관리자 가이드

참고 문헌