(一)配置及用法之Struts

对于初学者来说,各种繁琐的配置成为一个比较令人头疼的问题。现在总结一下目前学到的和用到的配置,希望让我们减少放在配置上的时间,把精力放在提高代码的质量上,进入正题。struts是开源软件。使用Struts的目的是为了帮助我们减少在运用MVC设计模型来开发Web应用的时间。如果我们想混合使用Servlets和JSP的优点来建立可扩展的应用,struts是一个不错的选择。本文介绍Struts。
[color=red][b]Struts目前用到的包:[/b][/color][color=blue]commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、freemarker-2.3.16.jar、javassist-3.7.ga.jar、ognl-3.0.jar、struts2-convention-plugin-2.2.1.1.jar、struts2-core-2.2.1.1.jar、xwork-core-2.2.1.1.jar[/color]
[color=red][b]struts.xml的配置(放在src目录下):[/b][/color]

<?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="xxx" extends="struts-default"namespace="xxx">//包的配置

<!-- 全局result的配置 -->
<global-results>
<result name="login">/login.jsp</result>
</global-results>

<!-- 配置拦截器 -->
<interceptors>
<interceptor class="自定义类全路径" name="自定义" />//自定义拦截器

<interceptor-stack name="authorityStack">//配置拦截器栈
<interceptor-ref name="defaultStack"></interceptor-ref>//设置默认拦截器
<interceptor-ref name="authority"></interceptor-ref>//设置自定义拦截器
</interceptor-stack>
</interceptors>
<!--设置此包的默认拦截器 -->
<default-interceptor-ref name="authorityStack"></default-interceptor-ref>

<action name="自定义" class="自定义类全路径" method="自定义">
<result name="xxx">/index.jsp</result>
<interceptor-ref name=""></interceptor-ref>//为此Action引用拦截器
</action>
</package>
</struts>

如果Struts.xml的result中的路径配置多个参数,可以这样写:

paramType1=${xxxx}&paramType2=${xxxx}

好像xml的格式都是这样的。不能直接用&,会报错!
[color=red][b]在sturts.xml或者struts.properties(格式不一样,如name=value即可)文件中可以配置:[/b][/color]

<!--设置默认包-->
<constant name="struts.convention.default.parent.package" value="packageName" />
<!-- 指定Web应用的默认编码,相当于调用HttpServletRequest的setCharacterEncoding -->
<constant name="struts.i18n.encoding" value="UTF-8"/>
<!--Action的请求后缀(多个用逗号分隔),默认是action-->
<constant name="struts.action.extension" value="do,html"/>
<!--浏览器是否缓存静态内容,默认值为true(生产环境下使用),开发阶段最好关闭 -->
<constant name="struts.serve.static.browserCache" value="false"/>
<!-- 当struts的配置文件修改后,系统是否自动重新加载该文件,默认值为false(生产环境下使用),开发阶段最好打开 -->
<constant name="struts.configuration.xml.reload" value="true"/>
<!-- 开发模式下使用,这样可以打印出更详细的错误信息 -->
<constant name="struts.devMode" value="true" />
<!-- 默认的视图主题,默认是xhtml -->
<constant name="struts.ui.theme" value="simple" />
<!--Spring和Struts整合时需要-->
<constant name="struts.objectFactory" value="spring" />
<!--设置国际化资源资源,这里的国际化资源文件如globalMessages_en_US.properties-->
<constant name="struts.custom.i18n.resources" value="globalMessages" />
<!--设置处理multipart/form-data的MIME类型请求框架,支持cos,pell,(默认)jakarta-->
<constant name="struts.multipart.parser" value="jakarta"/>

还有很多属性的配置,大概经常用的就列举如上。其他的自己查有关资料。

[color=red]web.xml的配置:[/color]

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

[color=red][b]Annotation配置Struts,例如[/b][/color]
public class LoginAction extends ActionSupport{
@Action(value = "自定义Action的Name", results = { @Result(name = "success", location = "/index.jsp"),@Result(name = "input", location = "/admin/login.jsp") },interceptorRefs = { @InterceptorRef("这里写此Action配置的拦截器名") })//这里应该看得懂把,看不懂自己琢磨一下,试一下。
public String execute()
{
return SUCCESS;
}
}
//execute是默认加载的方法名,那样可以不用在action中指定Method=""。但是建议还是指定比较好,不要懒。
//SUCCESS等价于"success",同理还有INPUT。(SUCCESS好像也是默认的Result的name,还是自己指定比较好)

其实Struts用Annotation,个人觉得以后不是很方便,这里只是希望大家了解了解,而且如何配置包默认拦截器等更深层次的Annotation配置还不是很了解,等以后懂了再详解。@Action我是放在方法之上的,可以放在类上,写法好像稍微不同,暂不探讨这个。
[color=red]PS:struts.properties,globalMessage_en_US.properties,struts.xml等都放在src目录下。[/color]
暂且说到这儿,还遗漏什么请留言补充一下,谢谢。
看得可能有点乱,总结一下:
(1)主要开发过程:struts.xml+web.xml+Action
(2)Struts的Annotation配置方法依情况使用(个人建议少使用)
(3)struts.properties文件也可以由个人觉得是否使用
(4)type="json"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值