struts2的相关练习

 今天练习了一个关于通配符的小程序
 请求的URL为:本机ip+端口号+工程名 是由tomcat直接处理的,默认访问到的是index.jsp,如果没有index.jsp,则会使用默认action,执行相关联的action。有index时,后面乱输入也会执行默认的action
 下面看一下我写的小例子
 
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" />
        <package name="actions" extends="struts-default" namespace="/actions">
                <action name="Student*" class="com.struts2.action.StudentAction" method="{1}">
                        <result>/Student{1}_success.jsp</result>
                </action>

                <!--没有写method的时候它还是会找到,但是平时要写上-->
                <action name="*_*" class="com.struts2.action.{1}Action" method="{2}">
                        <result>/{1}_{2}_success.jsp</result>
                </action>
        </package>
</struts>

index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
  String path = request.getContextPath();
  String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<html>
  <head>
    <title>index.jsp</title>
  </head>
    <base href="<%=basePath%>">
  <body>
    使用通配符,就爱那个配置降到最低<br />
    <a href="actions/Studentadd">添加学生</a>
    <a href="actions/Studentdelete">删除学生</a>
    <br/>
    不过,一定要遵守"约定优于配置"的原则<br />
    <a href="actions/Teacher_add">添加老师</a>
    <a href="actions/Teacher_delete">删除老师</a>
    <%--<a href="Studentadd_success.jsp">添加学生</a>--%>
    <%--<a href="Studentdelete_success.jsp">删除学生</a>--%>
  </body>
</html>

  此处应注意:index.jsp文件中的链接中的内容应该是直接链接到struts.xml中的action上面,找到对应的action后执行相应的result.在这个链接中最前面可以添加namespace中定义的路径(例如此处的namespace是/actions,链接就可以写成:actions/某个具体的action名字)

*再一个就是通配符的使用,再次看一下上面的struts.xml文件

 <action name="*_*" class="com.struts2.action.{1}Action" method="{2}">
    <result>/{1}_{2}_success.jsp</result>
 </action>

这里的{1}代表*_*中的第一个*,{2}自然也就代表第二个*了.

来一条分割线吧
-----------------------------

  今天遇到的第二个问题
  如果有遇到动态方法调用的时候,在struts.xml中设置:

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

它默认是false,设置为true之后就会支持动态方法调用也就是使用!进行方法调用.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值