第一个Struts2应用

第一个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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值