struts2简单示例
今天写一个struts2的例子,目的是为了让大家明白struts2的基本流程,其实框架没有大家想象的那么难,说白了struts2的本质就是一个大的Servlet,即原本需要提交到Servlet处理的部分现在通过配置文件将其交给普通的Class类进行处理。
首先新建一个javaWeb项目,然后把struts2所依赖的包导入到lib下(可以百度一下也可以直接到官网上下载),然后在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>
在index.jsp中写如下代码:
<form method="post" action="testAction">
名称:<input type="text" name="name"/>
<input type="submit" value="提交"/>
</form>
接下来是写struts的配置文件struts.xml,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="testaction" namespace="/" extends="struts-default">
<action name="testAction" class="com.struts.action.TestAction">
<result name="success">/success.jsp</result>
<result name="error">/index.jsp</result>
</action>
</package>
</struts>
其中一个action对应一个响应,在index.jsp中action="testAction"所以此处action的name="testAction"这是一一对应的关系。然后此处的class对应的则是交给谁去处理,根据配置文件我们在com.struts.action包中新建一个TestAction的类,此类的内容如下:
package com.struts.action;
public class TestAction {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String execute(){
if ("username".equals(name)) {
return "success";
} else {
return "error";
}
}
}
在这里我们需要写一个返回值为String类型的execute方法,这里的return对应struts.xml中的result的name属性,而struts.xml中的result的内容这对应相应的页面。
这里的字段名称则是对应index.jsp中的name,一般我们在servlet中是用request.getParameter("name")得到的,但是在struts2中我们只需要把字段封装一下,剩下的交给struts2去做。
当然还有一个问题就是execute方法是默认的方法,如果我们的方法名称不为execute则需要在struts.xml中的action中加一个属性:method="对应方法名称",这样struts2就会调用对应类的对应方法。
在TestAction中的第12行这里我只是进行了简单的判断,大家可以根据自身情况连接数据库来做一个登陆的例子锻炼一下。
struts2简单示例的更多相关文章
- Linux下的C Socket编程 -- server端的简单示例
Linux下的C Socket编程(三) server端的简单示例 经过前面的client端的学习,我们已经知道了如何创建socket,所以接下来就是去绑定他到具体的一个端口上面去. 绑定socket ...
- C# 构建XML(简单示例)
C# 构建XML的简单示例: var pars = new Dictionary<string, string> { {"url","https://www. ...
- 根据juery CSS点击一个标签弹出一个遮罩层的简单示例
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ACEXML解析XML文件——简单示例程序
掌握了ACMXML库解析XML文件的方法后,下面来实现一个比较完整的程序. 定义基本结构 xml文件格式如下 <?xml version="1.0"?> <roo ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
- spring-servlet.xml简单示例
spring-servlet.xml简单示例 某个项目中的spring-servlet.xml 记下来以后研究用 <!-- springMVC简单配置 --> <?xml versi ...
- SignalR 简单示例
一.什么是 SignalR ASP.NET SignalR is a library for ASP.NET developers that simplifies the process of add ...
- Web API 简单示例
一.RESTful和Web API Representational State Transfer (REST) is a software architecture style consisting ...
- XML引入多scheme文件约束简单示例
XML引入多scheme文件约束简单示例,用company.xsd和department.xsd来约束company.xml: company.xsd <?xml version="1 ...
随机推荐
- <Araxis Merge>保存文件
1.保存文件 在任何时候都可以使用File菜单中的Save和Save As来保存文件.使用Save将修改的部分保存回文件.使用Save As将会用新名称来保存文件.在你右击文件面板的时候也可以从快捷菜 ...
- VB IE 清除历史记录
VB删除Cookie,仅适用于IE7版本 IE7版本为我们提供了命令行删除Cookie,清除临时文件缓存,清除历史记录表单的方法,下面是详细的命令运行方式. '注:以下代码仅支持IE7. '清除Int ...
- 从根源上解析 Java volatile 关键字的实现
1.解析概览 内存模型的相关概念 并发编程中的三个概念 Java内存模型 深入剖析Volatile关键字 使用volatile关键字的场景 2.内存模型的相关概念 缓存一致性问题.通常称这种被多个线程 ...
- 关闭SELinux的两种方法
1 永久方法 – 需要重启服务器 修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器. 2 临时方法 – 设置系统参数 使用命令setenforce ...
- SaltStack安装(CentOS7.x)
安装基础: 参考文档:https://docs.saltstack.com/en/latest/topics/installation/rhel.html 1.导入SaltStack仓库key: wg ...
- POJ 3660 Cow Contest (Floyd)
http://poj.org/problem?id=3660 题目大意:n头牛两两比赛经过m场比赛后能判断名次的有几头可转 化为路径问题,用Floyd将能够到达的路径标记为1,如果一个点能 够到达剩余 ...
- SQL语句执行时所发生的步骤
- cookie.js 加载顺序问题
今天遇到一个问题,在使用cookie.js时,只有在jquery.js文件后加载整体才有效 有效加载顺序 <head> <script type="text/javascr ...
- Listview上下滚动崩溃
利用CursorAdapter在ListView中显示Cursor中不同同类型的item,加载均正常,滚动时报如下错误: 11-28 15:18:16.703: E/InputEventReceive ...
- 线性判别分析(Linear Discriminant Analysis,LDA)
一.LDA的基本思想 线性判别式分析(Linear Discriminant Analysis, LDA),也叫做Fisher线性判别(Fisher Linear Discriminant ,FLD) ...