- 浏览: 170569 次
- 性别:
- 来自: 北京
最新评论
-
小桔子:
u 棒棒哒!按照你的搞定了,之前搞了好久!u 棒棒哒!!! ...
Ubuntu为Tomcat启用80端口 -
u011938035:
我用的是nutch1.7,org.apache.nutch.n ...
nutch1.4 URLNormalizers 详解 -
peigang:
试试跟踪一下脚本,应该是环境变量的问题。
nutch1.4:爬虫定时抓取设置 -
zhangmj10:
你好,看这帖子是好久以前的,不知道你能不能看到。不知道能不能帮 ...
nutch1.4:爬虫定时抓取设置 -
shinide1989:
楼主你好,我正需要修改html的解析,并想把结果存为其他格 ...
nutch1.4插件开发
文章列表
拦截器在实际开发中经常用到,典型的应用如对全局环境的权限验证。拦截器实现可以体现非常好的封装性,代码也容易维护。
拦截器实现需要如下步骤。
一、实现一个拦截器类
Struts2的拦截器必须实现com.opensymphony.xwork2.interceptor.Interceptor接口和对于方法,如下所示:
1、拦截器实现类
package filter;
import com.opensymphony.xwork2.ActionInvocation;import com.opensymphony.xwork2.interceptor.Interceptor;
publ ...
一、文件上传
Struts2的文件上传需要commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar文件。
第一个为文件上传组件,第二个为文件操作组件。
各部分代码必须遵守如下规则
1、页面代码片段如下
<form enctype="multipart/form-data" action="/test/upfile.action" method="post"> <input type="file" name="photo&quo ...
Struts2中摒弃掉了Struts1中对servlet各种对象的直接引用,增加了代码的灵活性。在开发各环节中经常用到的各种属性获取、存放则采用封装的方式予以提供,以下为实例:
java代码中的属性操作。
//封装类获取属性
public String execute(){
ActionContext ctx = ActionContext.getContext(); //获取HttpServletRequest属性集合 Map appli = ctx.getApplication(); //获取ServletContext 全局变量集合 Map session ...
struts2中
1、局部类型转换器
2、全局类型转换器
xwork-conversion.properties
Struts2中请求参数以action属性的方式被初始化赋值。所以在action类中的属性同页面提交的参数存在一一对应的关系。action中属性实现的get(),set()方法提供了Struts2框架注入值和在返回页面中获取值的渠道。
以下为参数接收的方式:
1、基本类型参数接收请求参数(get/post)
请求路径:http://localhost/test/add.action?id=100
.......
private Long id;
public void setId(Long id) { //struts2使用反射技术调用与请求参数同名的属性的setter方法 ...
Struts2的action默认调用方法为execute()。
如果想指定调用的方法则需要采用动态方法或者通配符方式解决,如下:
java代码片段:
public String print(){ ...... return "success"; }
public String execute(){ ......
return "success";}
1、动态方法调用:
struts.xml配置如下
<action name="helloworld" class="test ...
复杂的系统开发会有很多的action配置。为便于管理开发中应该按照功能模块或者业务分类,将sturts配置文件分成不同的文件,便于管理、维护。最后将这些文件在struts.xml中进行包含声明。
student.xml
<struts> <package name="student" namespace="/student" extends="struts-default">
<action name="helloworld" class=" ...
1、解析web.xml中的过滤器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,对让问请求路径进行解析,符合后缀标准则执行步骤2.
2、逐个执行struts2框架的各个拦截器和用户的拦截器。
3、创建action类并执行。
4、rusult返回处理。
5、jsp/html响应。
Struts2中请求后缀默认为.action。如果不带.action参数访问则启用当前的默认后缀即.action。
为Struts2修改访问后缀可以在struts.xml中修改,配置参数如下:
<constant name="struts.action.extension" value="do,action"></constant>
其中value的值为后缀,多个后缀声明用“,”号隔开。
也可以在struts.properties中配置
struts.action.extension=do,action
...
Struts2为Action中的属性提供了依赖注入功能。程序代码跟配置文件如下:
程序代码片段:
public class HelloWorldAction {
private String message = null; public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
.........
}
配置文件片段
<action name="helloworld&quo ...
result配置类似于struts1中的forword,但struts2中提供了更多的类型,常用类型有dispatcher(默认值)、redirect、redirectAction、plainText。
使用${属性名}表达是的方式访问action中的属性,表达式里的属性对应action中的属性。如下:
<result type="redirectAction">/delete.jsp?id=${id}</result>
redirectAction的例子,重定向的路径为同一个包下:
<result type ...
如前文所述struts.xml配置文件负责所有的action配置。完整的配置文件如下:
<action name="helloworld" class="test.HelloWorldAction"> <result name="success">/page/hello.jsp</result></action>但是如果修改为如下配置,同样可以实现访问。
<action name="helloworld" > ...
在struts.xml中配置的action如下:
<package name="st3" namespace="/test" extends="struts-default"> <action name="helloworld" class="test.HelloWorldAction"> <result name="success">/page/hello.jsp</result> ...
一、添加struts.xml配置文件。
代码如下:
<struts>
<package name="st3" namespace="/test" extends="struts-default"> <action name="helloworld" class="test.HelloWorldAction"> <result name="success">/page/hello. ...
说明:本系列文章适合于有J2EE开发经验程序员快速学习使用Struts2。
一、文件准备:
从如下地址http://struts.apache.org/download.cgi 下载相关文件,可以选*lib.zip或者*all.zip。
下载完毕后再解压的lib目录中挑选相关的jar文件。我用的是struts-2.2.1 所以应用中需要的文件为commons-fileupload-1.2.1.jar、commons-logging-1.0.4.jar、freemarker-2.3.16.jar、ognl-3.0.jar、struts2-core-2.2.1.jar、xwork-cor ...