S4.1_Struts2_ActionAdvance 在action动作类里定义增删改方法,在struts.xml中的action method属性如何设置?
来源:互联网 发布:跳舞毯哪款最好 知乎 编辑:程序博客网 时间:2024/05/29 13:22
我们接下来将要创建的项目目录结构如下:
由项目S3.1_Struts2_BasicConfiguration (如何下载它:点击打开链接)复制粘贴生成一个新项目 ------S4.1_Struts2_ActionAdvance
详细操作截图参考S1.2_Struts2_ByManual 手工编写第一个Struts2范例篇,位置在项目目录结构图下面。
第1步:在src/struts.properties这个文件中,找到struts.action.extension=do,将其删除 ------ 目的是为了使用默认的action扩展。
第2步:在WebRoot/login.jsp文件中 找到login.do 将其改成login.action,主意红色字体标识的地方,调整后的login.jsp页面代码如下:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>系统登录</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>系统登录</h1>
<hr>
<form name="loginForm" action="<%=path%>/user/login.action" method="post" >
用户名称:<input type="text" name="username"/><br>
用户密码:<input type="password" name="password"/><br>
<input type="submit" value="登录"/><br>
<br>
<br><a href="<%=path%>/admin/login.action">管理员登录</a>
</form>
</center>
</body>
</html>
第3步:在WebRoot/login_failure.jsp文件中 找到exit.do 将其改成exit.action,主意红色字体标识的地方,调整后的login_failure.jsp页面代码如下:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>登录失败</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>登录失败</h1>
<hr>
<s:fielderror value="login_error" theme="simple"></s:fielderror>
<a href="<%=path%>/exit.action">返回</a>
</center>
</body>
</html>
第4步:在WebRoot/admin/admin.jsp文件中,插入红色字体标识的代码:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>管理员界面</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>管理员界面</h1>
<hr>
<li><a href="<%=path%>/admin/add.action?method=添加">添加</a></li>
<li><a href="<%=path%>/admin/del.action?method=删除">删除</a></li>
<li><a href="<%=path%>/admin/mod.action?method=修改">修改</a></li>
<s:debug></s:debug>
</center>
</body>
</html>
第5步:创建WebRoot/admin/result.jsp页面文件,其代码如下:
<%@ page language="java" import="java.util.*" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>管理员操作成功</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
<center>
<h1>管理员${param.method}操作成功</h1>
<hr>
</center>
</body>
</html>
第6步:在net.nw.action/AdminAction.java动作类里面实现add,delete,modify方法的代码,其简单演示实现代码已用红色字体标识如下:
package net.nw.action;
import com.opensymphony.xwork2.ActionSupport;
public class AdminAction extends ActionSupport {
/**
* 对象序列化需要此serialVersionUID
*/
private static final long serialVersionUID = 1L;
public String add(){
System.out.println("管理员添加 ...");
return SUCCESS;
}
public String delete(){
System.out.println("管理员删除 ...");
return SUCCESS;
}
public String modify(){
System.out.println("管理员修改 ...");
return SUCCESS;
}
}
第7步:在src/struts.xml文件中找到子包admin,在该子包内添加红色字体标识的代码:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" ></constant>
<constant name="struts.i18n.encoding" value="utf-8" ></constant>
<!-- 父包default -->
<package name="default" namespace="" extends="struts-default">
<global-results>
<result name="login_success">/login_success.jsp</result>
<result name="login_failure">/login_failure.jsp</result>
</global-results>
<action name="exit">
<result>/login.jsp</result>
</action>
</package>
<!-- 子包user继承于父包default -->
<package name="user" namespace="/user" extends="default">
<action name="login" class="net.nw.action.LoginAction3">
</action>
</package>
<!-- 子包admin继承于父包default -->
<package name="admin" namespace="/admin" extends="default">
<action name="login" class="net.nw.action.AdminAction">
<result>/admin/admin.jsp</result>
</action>
<action name="add" class="net.nw.action.AdminAction" method="add">
<result>/admin/result.jsp</result>
</action>
<action name="del" class="net.nw.action.AdminAction" method="delete">
<result>/admin/result.jsp</result>
</action>
<action name="mod" class="net.nw.action.AdminAction" method="modify">
<result>/admin/result.jsp</result>
</action>
</package>
</struts>
上面src/struts.xml配置文件里红色标识部分里面的多个独立结果元素值都一样(/admin/result.jsp),可以抽取出来放在global-results标签里,
这样更简化,调整后的struts.xml文件代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" ></constant>
<constant name="struts.i18n.encoding" value="utf-8" ></constant>
<!-- 父包default -->
<package name="default" namespace="" extends="struts-default">
<global-results>
<result name="login_success">/login_success.jsp</result>
<result name="login_failure">/login_failure.jsp</result>
</global-results>
<action name="exit">
<result>/login.jsp</result>
</action>
</package>
<!-- 子包user继承于父包default -->
<package name="user" namespace="/user" extends="default">
<action name="login" class="net.nw.action.LoginAction3">
</action>
</package>
<!-- 子包admin继承于父包default -->
<package name="admin" namespace="/admin" extends="default">
<global-results>
<result>/admin/result.jsp</result>
</global-results>
<action name="login" class="net.nw.action.AdminAction">
<result>/admin/admin.jsp</result>
</action>
<action name="add" class="net.nw.action.AdminAction" method="add">
</action>
<action name="del" class="net.nw.action.AdminAction" method="delete">
</action>
<action name="mod" class="net.nw.action.AdminAction" method="modify">
</action>
</package>
</struts>
第8步:发布项目运行程序
此步操作的详细过程参考S1.1_Struts2_Model2 手动创建一个简单的servlet项目,未使用Struts技术 点击打开链接 位置在最下面------发布项目运行程序
若成功发布运行本项目代码,启动后您会看到欢迎页地址:http://localhost:8080/S4.1_Struts2_ActionAdvance/login.jsp
运行效果截图如下:
本项目下载地址:点击打开链接
- S4.1_Struts2_ActionAdvance 在action动作类里定义增删改方法,在struts.xml中的action method属性如何设置?
- S4.2_Struts2_ActionAdvance 在url地址中动态调用action方法
- struts2在struts.xml文件中获取或设置action中的属性
- 如何在struts.xml中取得action中的参数
- S4.4_Struts2_ActionAdvance action通配符的用法
- Struts2-action在struts.xml中的配置
- S4.3_Struts2_ActionAdvance默认的action配置如何处理到错误页的跳转
- 在struts2中的struts.xml里重定向action时传参数
- struts中的action和Action类以及struts2中如何在Action类中获得servlet api的域对象
- [JavaEE]Struts2路径问题(如何在jsp页面正确访问struts.xml中的action)
- struts2中struts.xml中的action标签的method属性配置为"{1}"的时候是什么意味
- 如何在struts中的action的execute方法()中弹出对话框
- Struts2 在struts.xml配置Action
- Struts的Action接口---(2)Method属性方法调用。
- Struts2----struts.xml--在请求中通过"!"自动匹配Action所对应的method
- 在struts.xml中配置默认Action类(二)
- Action动作类以及struts.xml配置解析
- Struts中的Action方法
- linux将本目录下的大小为0的文件移除
- DTD约束
- ServerSocket+Swing+SQL Server2008聊天系统(好友私聊,聊天室群聊)
- addEventListener()解决传统事件绑定中去除冗余同名函数但也存在问题
- Unity Editor Window Zooming
- S4.1_Struts2_ActionAdvance 在action动作类里定义增删改方法,在struts.xml中的action method属性如何设置?
- MPI—统计完数的个数
- <sstream>—istringstream、ostringstream、stringstream类
- 字母点击滚动条跳转事件
- Nexus私服与Maven配置
- 将数据流链接到加密转换的流CryptoStream 类
- 构造数组的MaxTree
- 去除inline-block元素间间距的N种方法
- try finally没有catch的用法