SAStruts使用环境搭建运行tutorial project

本文介绍了在导入SAStruts教程项目到Eclipse时遇到的类路径错误问题。问题源于工程classpath中指向的包路径错误。解决方法是通过右键项目,选择BuildPath > Configure Build Path,修正红色标记的库路径。此外,提供了参考资料,包括如何在Eclipse中检查和移除未找到的jar,以及安装Tomcat Launcher的步骤。
摘要由CSDN通过智能技术生成
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标签的详细信息如下
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值