下载地址:http://sourceforge.net/p/xingxingmvc/
XingXingMVC是基于事件的MVC架构,跟swing类似,每个web页面都可有一个对应的form类,用来处理相应的事件,form类是一个普通的java类,名字与页面的名字一样,仅仅是后缀不同. 例如,/myfolder/mypage.jsp,其form类为mypage.java,该类所在包名为forms.myfolder,可以看出来,form类的包名是将路径中的"/"转成".",此外,form类的包名带有一个统一的前缀forms,这主要是为了区分其他包,这个前缀默认是“forms”,用户可以根据自己的喜好配置另外一个名字。
下面建立一个demo工程。
1、web.xml中的配置
web.xml中,只需配置过滤器即可,如图:
完整的web.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" 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_3_0.xsd"> <filter> <filter-name>xxmvc</filter-name> <filter-class>xx.mvc.FilterDispatcher</filter-class> </filter> <filter-mapping> <filter-name>xxmvc</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>xxmvc</filter-name> <url-pattern>/$xx/mvc/*</url-pattern> </filter-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
创建一个页面index.jsp,放在根路径下。页面内容如下:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>XingXing MVC Demo</title>
</head>
<body>
<h2>${word}</h2>
<p>
用法说明.
每一个被xingxing mvc 过滤的页面,均可有一个form类来接受页面输入,并处理页面输出.form类放在forms包中.
</p>
<hr/>
</body>
</html>
创建一个form类,名称跟页面名一样,也叫index,当然文件后缀是java,所在包为forms。为这个form类建立页面加载事件onLoad,这是一个方法,参数是两个map,第一个map是request对象的map,第二个map是session的map。返回参数为void,表示返回页面即用户请求的页面,没有跳转或重置。
forms.index.java代码.
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package forms;
import java.util.Map;
/**
*
* @author hicen
*/
public class index
{
public void onLoad(Map mapRequest,Map mapSession)
{
mapRequest.put("word", "Hello world! This is XingXingMVC.");//相当于request.setAttribute("word","Hello world! This is XingXingMVC.");
}
}
运行,结果如下。