这一篇主要大家介绍一下几个问题:
1,创建Action的三种方法
2,struts.xml中的缺省配置
3,关于页面访问的安全性问题
首先,看一下Action三种创建方法:
第一种:直接手动创建一个类
第二种:继承ActionSuppor类(推荐使用)
第三种:实现Action接口,(大家可以查看一下Action接口的内容,五个常量,一个execute()方法)
在这里看一下文件的结构:
其中demo1,demo2,demo3如下:
package action; /* * * action的三种定义方法之一:直接编写一个action类 * * */ public class demo1 { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } public String execute(){ name="这是Demo1,直接定义的一个action类,没有继承任何类和实现任何接口"; return "success"; } }
package action; import com.opensymphony.xwork2.ActionSupport; /* * * 创建Action方法二:继承ActionSupport类 * * */ public class demo2 extends ActionSupport { String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String execute() throws Exception { name="这是demo2,继承了actionsuppor类"; return super.execute();//超类默认返回的是success } }
package action; import com.opensymphony.xwork2.Action; /* * * 创建Action方法三:实现Action接口 * * */ public class demo3 implements Action { private String name; public String execute() throws Exception { name="这是demo3,实现了action接口"; return "success"; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
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.i18n.encoding" value="UTF-8"></constant> <package name="default" namespace="/demo" extends="struts-default" > <action name="demo1" class="action.demo1"> <result name="success">../demoTest.jsp</result> </action> <action name="demo2" class="action.demo2"> <result name="success">../demoTest.jsp</result> </action> <action name="demo3" class="action.demo3"> <result name="success">../demoTest.jsp</result> </action> </package> </struts>
demoTest.jsp的内容如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <s:property value="name"/> </body> </html>
运行截图如下:
好了,大家了解Action创建的三种方法之后,接下来给大家说说,struts.xml的缺省配置
struts.xml中的package中的name是包的唯一标示,namespace是命名空间,页面访问时用的,缺省时,默认为namespace="/"
action中的name也是action的唯一标示,class是对应的action类,两个属性是不可以省略的~~
result标记在action可以有多个,name属性可以省略,默认为name=“success”.
好了,接下来介绍一下,页面访问的安全性问题,当JSP页面放到WEB-INF文件夹里时,外界是无法访问的,只有内部服务器可以访问到如:
大家看到了吧~~~