首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

struts2开发环境筹建helloworld

2012-08-03 
struts2开发环境搭建helloworld??????? 综合比较了java的一些MVC开源框架,觉得目前为止,struts2是一个很不

struts2开发环境搭建helloworld

??????? 综合比较了java的一些MVC开源框架,觉得目前为止,struts2是一个很不错的框架!学习一门新的技术从helloworld开始。这个也不例外。

?

一:首先新建一个web工程,将struts2需要的jar包拷贝到WEB-INF\lib中,jar包列表如下:

?

commons-fileupload-X.X.X.jar commons-io-X.X.X.jar commons-logging-X.X.X.jar commons-logging-api.X.X.jar freemarker-X.X.X.jar ognl-X.X.X.jar struts2-core-X.X.X.X.jar xwork-core-X.X.X.jar javassist-3.7.ga.jar (new for Struts versions 2.2.1 and higher) log4j-1.2.14.jar

?

二:在web.xml加入struts2的过滤器

?

 <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>

?

三:创建struts.xml

?

???? struts2可以通过xml文件或者标注的方式来指定url,java对象和页面直接的关系。struts.xml放在src文件夹下面。下面是一个简单的配置:

???

<?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><constant name="struts.devMode" value="true" /><package name="basicstruts2" extends="struts-default"><action name="index"><result>/index.jsp</result></action></package></struts>

?

四:开始helloworld

? 1)新建模型类:

?

?

package com.cmj.struts2.helloworld.model;public class MessageStore {private String message;public MessageStore() {setMessage("Hello Struts User");}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}

?

2)新建action类

?

 package com.cmj.struts2.helloworld.action;import com.cmj.struts2.helloworld.model.MessageStore;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport {private static final long serialVersionUID = 1L;private MessageStore messageStore;public String execute() throws Exception {messageStore = new MessageStore();return SUCCESS;}public MessageStore getMessageStore() {return messageStore;}public void setMessageStore(MessageStore messageStore) {this.messageStore = messageStore;}}

?

3)struts.xml中增加配置

?

  <?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>  <constant name="struts.devMode" value="true" />  <package name="basicstruts2" extends="struts-default">  <action name="index">    <result>/index.jsp</result>  </action>  <action name="hello" method="execute">    <result name="success">/HelloWorld.jsp</result>  </action></package></struts>

?

4)页面取值

?

??

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Hello World!</title></head><body>    <h2><s:property value="messageStore.message" /></h2></body></html>

?

好了,在页面上http://127.0.0.1:8080/struts223/hello.action就可以看到结果了。struts2的helloworld结束了,简单吧。

?

?

?

总结:

下面说说整个的一个流程:
?struts2调用流程
A:在浏览器上输入url后,会通过web.xml中配置的过滤器org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter。
B:struts2会根据hello.action来寻找对应的HelloWorldAction类,然后框架实例化并调用HelloWorldAction的excute方法。
C:excute方法创建MessageStore 对象,并返回SUCCESS,根据整个SUCCESS来寻找对应的页面资源HelloWorld.jsp。
D:在HelloWorld.jsp中<s:property value="messageStore.message" />表示调用HelloWorldAction的getMessageStore 方法,然后调用
MessageStore 的 getMessage 方法。

热点排行