因为最近在学习使用SSH框架(struts2+spring+hibernate),下面来介绍表现层struts2的使用方法。

(一)添加struts2的包

  见上一篇博客,先看一下添加的各个文件的目录结构

(二)介绍各个文件的作用

  login.jsp:登陆界面,里面使用的标签是struts2的标签。

  index.jsp:主界面,登陆成功后会转向这个界面

  web.xml:web工程的主配置文件,在这个配置文件中指定了web欢迎界面(就是login.jsp)。添加struts2的过滤器,指定所有的表现层都有struts2来负责。这里要使用org.apache.struts2.dispatcher.FilterDispatcher过滤器,才能即支持struts2标签又支持html标签。如果使用org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤器,则只支持html标签,不支持struts2标签。

  struts.xml:struts2的配置文件,指定每一个action的跳转关系。

  LoginAction.java:用来处理action的java文件。

  

(三)各个文件的调用关系如下图

  

(四)各个文件的具体内容

  login.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body> <s:form action="Login" method="post">
<s:textfield key="username" label="用户名" />
<s:password key="password" label="密码" />
<s:submit value="登陆" />
</s:form> </body>
</html>

  index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head> <body>
This is main page. <br>
</body>
</html>

  web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
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_2_5.xsd"> <!-- 配置FilterDispatcher过滤器,以便加Spring容器 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping> <!-- web欢迎界面 -->
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list> </web-app>

  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>
<!-- 需要Spring时添加 -->
<!-- <constant name="struts.objectFactory" value="spring" /> --> <package name="default" extends="struts-default">
<action name="Login" class="com.HYOpticalComm.action.LoginAction" method="execute">
<result name='success'>/index.jsp</result>
<result name='error'>/login.jsp</result>
</action>
</package> </struts>

  LoginAction.java:

package com.HYOpticalComm.action;

import com.opensymphony.xwork2.Action;

public class LoginAction implements Action {
private String username;
private String password; public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String execute() throws Exception {
if (this.getUsername().equals("admin")
&& this.getPassword().equals("123")) {
return SUCCESS;
} else {
return ERROR;
}
}
}

(五)运行结果

PS:本人新学习SSH框架,有不合理的地方请批评指正,本博客发布的所有代码都是经过我验证通过的。

最新文章

  1. acdream1233 Royal Federation (构造?)
  2. ios编程之网络请求
  3. 对ASP.NET运行机制之 一般处理程序ashx的学习
  4. DBHelper数据库操作类(二)
  5. 坑爹的libxml2 for mingw 编译
  6. jQuery 事件——关于select选中
  7. 从零开始搭建口袋妖怪管理系统(2)-借助ngRoute实现详情页面跳转
  8. redis-win-server 正确启动方式
  9. day 15 模块、起别名、from导入
  10. SQL语句删除表中的字段只留下最新一行
  11. win10常用命令和设置总结
  12. MySQL学习(五)
  13. TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议
  14. android textview支持多种格式跳转
  15. Android 四大组件和Intent
  16. python 采坑总结 调用键盘事件后导致键盘失灵的可能原因
  17. python将xml转换成json数据
  18. asp.net状态保持
  19. java 基础解析
  20. 从网络得到数据--Arduino+以太网

热门文章

  1. mysql Replication机制
  2. 转载:电商项目完成的BUG调查原因和解决方案
  3. LeetCode Predict the Winner
  4. NAT打洞
  5. windbg调试实例(4)--句柄泄露
  6. 2、配置Selenium RC
  7. zabbix3.2.1安装graphtrees插件
  8. 在Azure New Portal上创建基于ARM的带SLB的VM
  9. 机器学习:PCA(人脸识别中的应用——特征脸)
  10. java中i/o练习