第一个Struts2应用
2015-08-04 01:03
519 查看
第一个Struts2应用
前面有一篇文章已经讲到过有关Struts2环境的相关配置了,不熟悉的话可以看看:Struts2开发环境搭建现在开始开发我的第一个Struts2应用:
1.首先定义一个action类:HelloAction.java
package com.asmine.action; public class HelloAction { private String message; //由getMessage()方法中的message决定,get方法是必须的,而字段message则可以是任意的,反射技术 public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute(){ message = "我的第一个struts2应用"; return "success"; } }
2.然后在struts.xml文件中配置所定义的action类(HelloAction):
<?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> <!-- package中的name属性值必须是唯一的 访问路径是:/test/hello --> <package name="asmine" namespace="/test" extends="struts-default"> <action name="hello" class="com.asmine.action.HelloAction" method="execute"> <result name="success">/WEB-INF/hello.jsp</result> </action> </package> </struts>
3.在WEB-INF目录下建立一个JSP文件:hello.jsp,并且在此JSP文件中获取我们action类中的属性message:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib prefix="s" uri="/struts-tags" %> <% 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>My JSP 'hello.jsp' starting page</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> This is my JSP page. <br> <!-- 第一种方法 --> <s:property value="message"/> <!-- 第二种方法 --> <!-- ${message } --> </body> </html>
这里需要说明几点:
1.第一种方式是利用了Struts2的标签,需要声明标签的相关属性:
<%@ taglib prefix="s" uri="/struts-tags" %>
2.第二种方式属于JSP中的EL表达式
4.最后的步骤就是将项目部署至tomcat服务器中,在浏览器中访问相应的路径即可.
5.最后补充一下相关的知识:
1.Struts2中action的搜索顺序:
1).获得请求路径的URI,例如url是:http://server/struts2/path1/path2/path3/test.action
2).首先寻找namespace为/path1/path2/path3的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package则转步骤3
3).寻找namespace为/path1/path2的package,如果存在这个package,则在这个package中寻找名字为test的action,如果仍然不存在这个package,则转步骤4
4).寻找namespace为/path1的package,如果存在这个package,则在这个package中寻找名字为test的action,如果不存在这个package,就去默认的namespace的package下面寻找名字为test的action,如果还是找不到,页面提示找不到action(默认的namespace为空字符串)
2.Struts2 action配置中的各项默认值:
1).如果没有为action指定class,默认为ActionSupport.
2).如果没有为action指定method,默认执行action中的execute方法.
3)如果没有为action指定result的name属性,默认为success.
相关文章推荐
- Spring Boot 让 MyBatis 打印日志的方法
- java.net.URLConnection详解
- 改换jdk版本可能出现的问题
- java基础知识
- 设置单个项目的jdk版本
- JAVA中转义字符:
- Spring + iBATIS完整示例
- 设置myeclipse的默认jdk版本(导入jre system library)
- Spring整合Quartz(JobDetailBean方式)
- MyEclipse10优化
- Java 图片合并类
- Java泛型
- Java心得5
- windows编译hadoop 2.x Hadoop-eclipse-plugin插件
- Spring 的优秀工具类
- Spring 的优秀工具类盘点,第 1 部分: 文件资源操作和 Web 相关工具类
- Spring with and without XA
- Java 中的 Comparable and Comparator
- JCA——一个名不见经传却重要的JavaEE规范
- Spring AOP的实现