Struts1.3.10を使用。
本家「http://struts.apache.org/」からDL
解凍→libディレクトリ内のjarファイルを全て、WEB-INF下のlibディレクトリにコピーし、ビルドパスに追加
~jspをstrutsタグを使って作成~
・先頭に、使うstrutsタグの種類を指定
%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
や
%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
など、そのページで使うやつだけ書き足す。
・外部ファイルの指定方法が変わる
通常
<link rel="stylesheet" type="text/css" href="../css/style1.css"/>
としてたのを、
<link rel="stylesheet" type="text/css" href=" "/>
とする。
~Formクラスを作成~
・ActionFormを継承させて、パラメータ名と一致するgetter,setterを作成。
~Actionクラスを作成~
・Actionを継承させて、
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) {
を使用し、パラメータの値を何かしたい時はFormから呼び出す。
LoginForm lform = (LoginForm) form;
String id = lform.getId();
String pass = lform.getPass();
セッションに保持させる際は、
HttpSession session = req.getSession();
session.setAttribute("id", "id");
の様にして保持させる。
最後に必ず、Forwardを返す。
return mapping.findForward("result");
web.xmlファイルをWEB-INF直下に作成
web.xml
xml version="1.0" encoding="utf-8" ?>
!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>act</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>act</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/jsp/login.jsp</welcome-file>
</welcome-file-list>
</web-app>
WEB-INF直下にstruts-config.xmlを作成
struts-config.xml
?xml version="1.0" encoding="utf-8" ?>
!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="form.LoginForm"/>
</form-beans>
<action-mappings>
<action path="/test"
<forward name="result" path="/jsp/result.jsp"/>
</action>
</action-mappings>
</struts-config>
遷移先のjspをstrutsタグで作成。
tomcat6、eclipse3.4では、フレームワークを使わず、servletだけでアプリを作成した際は、自動で<Context>が書かれたxmlを作ってくれるのだが、
Strutsを使ったアプリでは自動で作成されなかった。なので、手書きで作る必要がある。
$CATALINA_HOME/conf/Catalina/localhost/内にプロジェクト名.xmlを作成し、
<Context path="/StrutsTest" reloadable="true" docBase="C:workspaceStrutsTest" workDir="C:workspaceStrutsTestwork" />
※StrutsTestはプロジェクト名 pathはプロジェクトの置き場所。
を作成した。
tomcatを起動させ、「http://localhost:8080/StrutsTest/」で最初の画面がでる。StrutsTestはプロジェクト名
最後に、
このままでは扱うパラメータが文字化けするので、
Strutsで扱う文字コードの設定をしておく。
filrersパッケージ作って、文字コード設定クラスをつくる。
package filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//文字コード設定クラス。
public class SetCharacterEncodingFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException{
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException{
request.setCharacterEncoding("utf-8");
chain.doFilter(request,response);
}
public void destroy(){
}
}
んで、web.xmlにこのクラスを起動時に読み込むように設定する。
<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上
※一部<>を使うとweb上で表示されない箇所は<>を省略しています。
本家「http://struts.apache.org/」からDL
解凍→libディレクトリ内のjarファイルを全て、WEB-INF下のlibディレクトリにコピーし、ビルドパスに追加
~jspをstrutsタグを使って作成~
・先頭に、使うstrutsタグの種類を指定
%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
や
%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
など、そのページで使うやつだけ書き足す。
・外部ファイルの指定方法が変わる
通常
<link rel="stylesheet" type="text/css" href="../css/style1.css"/>
としてたのを、
<link rel="stylesheet" type="text/css" href="
とする。
~Formクラスを作成~
・ActionFormを継承させて、パラメータ名と一致するgetter,setterを作成。
~Actionクラスを作成~
・Actionを継承させて、
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res) {
を使用し、パラメータの値を何かしたい時はFormから呼び出す。
LoginForm lform = (LoginForm) form;
String id = lform.getId();
String pass = lform.getPass();
セッションに保持させる際は、
HttpSession session = req.getSession();
session.setAttribute("id", "id");
の様にして保持させる。
最後に必ず、Forwardを返す。
return mapping.findForward("result");
web.xmlファイルをWEB-INF直下に作成
web.xml
xml version="1.0" encoding="utf-8" ?>
!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>act</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>act</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/jsp/login.jsp</welcome-file>
</welcome-file-list>
</web-app>
WEB-INF直下にstruts-config.xmlを作成
struts-config.xml
?xml version="1.0" encoding="utf-8" ?>
!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="form.LoginForm"/>
</form-beans>
<action-mappings>
<action path="/test"
<forward name="result" path="/jsp/result.jsp"/>
</action>
</action-mappings>
</struts-config>
遷移先のjspをstrutsタグで作成。
tomcat6、eclipse3.4では、フレームワークを使わず、servletだけでアプリを作成した際は、自動で<Context>が書かれたxmlを作ってくれるのだが、
Strutsを使ったアプリでは自動で作成されなかった。なので、手書きで作る必要がある。
$CATALINA_HOME/conf/Catalina/localhost/内にプロジェクト名.xmlを作成し、
<Context path="/StrutsTest" reloadable="true" docBase="C:workspaceStrutsTest" workDir="C:workspaceStrutsTestwork" />
※StrutsTestはプロジェクト名 pathはプロジェクトの置き場所。
を作成した。
tomcatを起動させ、「http://localhost:8080/StrutsTest/」で最初の画面がでる。StrutsTestはプロジェクト名
最後に、
このままでは扱うパラメータが文字化けするので、
Strutsで扱う文字コードの設定をしておく。
filrersパッケージ作って、文字コード設定クラスをつくる。
package filters;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
//文字コード設定クラス。
public class SetCharacterEncodingFilter implements Filter {
public void init(FilterConfig arg0) throws ServletException{
}
public void doFilter(ServletRequest request,
ServletResponse response,
FilterChain chain)
throws IOException, ServletException{
request.setCharacterEncoding("utf-8");
chain.doFilter(request,response);
}
public void destroy(){
}
}
んで、web.xmlにこのクラスを起動時に読み込むように設定する。
<filter>
<filter-name>EncodeFilter</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
以上
※一部<>を使うとweb上で表示されない箇所は<>を省略しています。