首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Struts2 复习笔记 002

2012-11-01 
Struts2 温习笔记 002?第一个Struts2示例前面搭建好Struts2的开发环境之后,我们应该运行一个很简单的示例。

Struts2 温习笔记 002

?第一个Struts2示例

前面搭建好Struts2的开发环境之后,我们应该运行一个很简单的示例。来理解分析Struts2框架的开发过程和大致的运行原理。

首先我们大致了解一下Struts2的运行流向图:


Struts2 复习笔记 002
?

大致解释一下Struts2的基本运行流向。
    首先Web Server接受客户request。根据web.xml中的设置,由org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤所有的请求,过滤器根据struts.xml中的配置调用与请求对应的action。action根据execute方法返回的字符串调用相应的jsp页面,响应给客户。

了解到Struts2的运行流向之后,我们开始入手开发第一个运行示例。

    首先编写action:

由于strust2已经采用了非侵入式的设计,在设计action的时候不会与servlet和struts有耦合的地方。

在编写action类的时候,只需要在类中定义个返回String的execute方法即可。

本例中HelloWorld.java:

package com.jiabao.struts2;public class HelloWorld {private String msg;public String getMessage(){return msg;}public String execute(){msg= "Struts2的HelloWorld!";return "success";}}

?

说明:HelloWorld.java即为基本的action类。在当中,设置了一个字符串变量,以供在jsp页面中调用显示。后面会用到这个变量。

?

2.在struts.xml文件中注册action类

?

<?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="default" namespace="/validation" extends="struts-default">    <action name="helloworld" name="code">${message}

?

上面使用了EL表达式。来调用action中的message。细心就会发现在action定义的变量时msg,而另外有一个getMessage方法返回msg变量的内容,这里也是Struts2的一个“规则”,即使页面端返回的是getMessage方法返回的值,而和变量msg没有任何关系。

这里EL表达式是在jsp2.0之后才支持的,所以使用jsp2.0以前标准的服务器并不支持以上EL代码。

?

?

插个小技巧:

当编辑struts.xml的时候如果没有代码提示,可能是因为eclipse并没有找到"http://struts.apache.org/dtds/struts-2.0.dtd",我们可以通过以下步骤手动设置。

在本地找到"struts-2.0.dtd"文件,Window-preferences-xml-xml Catalog添加这个文件即可。

热点排行