您的位置:首页 > 编程语言 > Java开发

SAStruts使用环境搭建运行tutorial project

2013-07-06 17:49 405 查看
SAStruts (Super Agile Struts)   官网:http://sastruts.seasar.org 
实习的日本公司让做的课题需要用SAStruts,只有日文文档,做笔记记录如下。

1.简介
超级敏捷的Struts
相比于struts的优点:

不用写设置文件
可以像脚本语言一样保存文件的同时编译,应用服务器不用在启动也可以识别。
2.使用例子程序:

下载后解压,Eclipse中导如sa-struts-tutorial工程
导入工程遇到的问题是工程

问题原因】:工程中classpath中指向的包路径错误
【解决办法】:右键项目名称 BuildPath ---> Configure Build Paht...中,然后上面有几个选项卡找到 Libraries中出现红色叉号的包为路径错误的包。到classpath中修改相应包的当前路径。然后回到eclipse中F5刷新工程。
 
下面两段为我解决此问题时在网上找的参考资料,可参阅:
你用myeclipse新建 web工程, 在工程目录下会生成一个 .classpath 配置文件, 

里面是你工程里面引用的jar的配置。这个.classpath 对你的web工程没有什么影响 

其实是给 myeclipse 识别的。你说的这种情况是因为 .classpath 文件里面 

配置引用了某个jar,但是实际上你的 lib 里面并没有这个jar 所以才会有红色的提示。 

你不用拿.classpath文件和你的jar一个个去找,你现在打开MyEclipse 
右键单击你的web工程,找到 Build Path > Configure Build Paht...  

> 然后上面有几个选项卡找到 Libraries。  这里看到的就是你工程里面引用的 

所有的 jar , 看看是不是在某个jar图标上有个很小的黄色的感叹号? 

如果有的话就没错了, 先选中这个jar, 点击右边的 Remove  > 点击OK 
解释一下:黄色的感叹号的jar,表示.classpath配置文件引用了jar, 

但是实际上lib里面没有这个jar。

先安装Tomcat Launcher,它 是Eclipse Totale开发的Plugin。Seasar Project的Eclipse3.2的更新网站可以安装。Eclipse菜单[Help]-> [Software Updates] -> [Find and Install…] 使显示出Install/Update dialog.
配置Tomcat  conf/server.xml    因为URL请求中会带有文字,防止乱码

<Connector port="8080" ... useBodyEncodingForURI="true"...

<Connector port="8080" ... URIEncoding="UTF-8"...

      配置context.xml  去掉Manager标签的注释 HOT deploy在使用session时可能会失效,是因为tomcat将session序列化,非序列化

<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<Manager pathname="" />


 配置webapp/WEB-INF下的web.xml

<?xml version="1.0"?>

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">

<context-param>
<param-name>sastruts.VIEW_PREFIX</param-name>
<param-value>/WEB-INF/view</param-value>
</context-param>

<filter>
<filter-name>encodingfilter</filter-name>
<filter-class>
org.seasar.extension.filter.EncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>

<filter>
<filter-name>s2filter</filter-name>
<filter-class>
org.seasar.framework.container.filter.S2ContainerFilter
</filter-class>
</filter>

<filter>
<filter-name>hotdeployfilter</filter-name>
<filter-class>
org.seasar.framework.container.hotdeploy.HotdeployFilter
</filter-class>
</filter>

<filter>
<filter-name>routingfilter</filter-name>
<filter-class>
org.seasar.struts.filter.RoutingFilter
</filter-class>
<init-param>
<param-name>jspDirectAccess</param-name>
<param-value>false</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>encodingfilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
<filter-name>s2filter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>

<filter-mapping>
<filter-name>hotdeployfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD<dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>

<filter-mapping>
<filter-name>routingfilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
</filter-mapping>

<servlet>
<servlet-name>action</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>
<init-param>
<param-name>configFactory</param-name>
<param-value>
org.seasar.struts.config.S2ModuleConfigFactory
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>

<servlet>
<servlet-name>s2container</servlet-name>
<servlet-class>
org.seasar.framework.container.servlet.S2ContainerServlet
</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>s2container</servlet-name>
<url-pattern>/s2container</url-pattern>
</servlet-mapping>

<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<el-ignored>false</el-ignored>
<page-encoding>UTF-8</page-encoding>
<scripting-invalid>false</scripting-invalid>
<include-prelude>/WEB-INF/view/common/common.jsp</include-prelude>
</jsp-property-group>
</jsp-config>
</web-app>

 工程名上右击-->Tomcat Project -》upload context definition ,启动tomcat
浏览器中运行 http://localhost:8080/sa-struts-tutorial/ 即可看到tutorial程序了!!!

jsp等的可视文件的放置路径又sastruts.VIEW_PREFI来指定。放在/WEB-INF是为了浏览器不可以直接访问。
EcodingFilter是encode request 中parameter的Filter.

S2ContainerFilter是Seasar2处理request,response等servlet使用的对象的Filter

HotdeployFilter 是Seasar2可以让Java class的改变被HOT识别的过滤器。

RoutingFilter是为了实现URL中看不到像Struts .do这样的后缀名的Filter

ActionServlet是Struts使用的servlet

S2ContainerServlet是为了Seasar2初始化和终止处理的servlet。为了比ActionServlet后启动,请将Actionservlet的load-on-startup的值调大。

S2ModuleConfigFactory是为了实现无struts-config.xml开发的class.

struts-config.xml

<?xml version="1.0"?>

<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

<struts-config>

<form-beans>
</form-beans>

<global-exceptions>
</global-exceptions>

<global-forwards>
</global-forwards>

<action-mappings>
</action-mappings>

<controller
maxFileSize="1024K"
bufferSize="1024"
processorClass="org.seasar.struts.action.S2RequestProcessor"
multipartClass="org.seasar.struts.upload.S2MultipartRequestHandler"/>

<message-resources parameter="application"
factory="org.seasar.struts.util.S2PropertyMessageResourcesFactory"/>

<plug-in className="org.seasar.struts.validator.S2ValidatorPlugIn">
<set-property
property="pathnames"
value="/WEB-INF/validator-rules.xml"/>
</plug-in>
</struts-config>

controller标签的processor属性中指定S2RequestProcessor。根据S2RequestProcessor用SAStruts的方法来处理请求。

multiProsessor属性中指定S2MultipartRequestHandler。

S2MultipartRequestHandler可以再file upload 发生sizeover异常时来获取异常。

message-resources标签中指定S2PropertyMessageResourcesFactory。通过S2PropertyMessageResourcesFactory可以让HOT识别message resource的变更。 

plug-in标签中S2ValidatorPlugInを指定します。 通过S2ValidatorPlugIn可以让HOT识别验证用的注释的变更。

jsp-cofig标签的详细信息如下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: