SSH 实现页面跳转

29 篇文章 1 订阅

JSP中使用绝对路径
在.jsp文件中通常要引入.css文件,图片等,若采用相对路径较复杂,一般采用绝对路径

${ pageContext.request.contextPath}

此句话的作用先获取前面的请求路径,比如
      ${ pageContext.request.contextPath}/css就是先获取前面的路径

以由首页跳转到注册页面为例:

1.修改页面跳转连接

<a href="${ pageContext.request.contextPath}/user_registPage.action">注册</a>  //语句1

要在A.jsp文件包含B.jsp文件,要在想要插入的位置,只需将B.jsp文件包含进来即可:

<%@ include file="menu.jsp" %></div>

2.编写用户模块Action

import com.opensymphony.xwork2.ActionSupport;   //导入
public class UserAction extends ActionSupport{  //语句2
    /*
     * 跳转到注册页面的执行方法
     */
    public String registPage(){  //方法名必须和 语句1 的跳转的action名称相同
        return "registPage";     
    }
}

方法名为:指定跳转路径的action方法名相同

3.配置Action

配置applicationContext.xml

    <bean id="userAction" class="cn.itcast.shop.user.action.UserAction" scope="prototype"> 
    </bean>

      <bean>是spring的一个标签,起到标识的作用,属性值任意期,不能包含特殊符号,根据      id得到配置对象
      class:创建对象所在类的全路径,是创建的UserAction的当前文件所在目录下的路径
      scope:是spring中的一个概念,简单说就是对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式

配置struts.xml

<action name="user_*" class="userAction" method="{1}">  //class名称必须和action即类名()必须相同
    <result name="registPage">/WEB-INF/jsp/regist.jsp</result>
</action>

      name="user_*":name为什么是user_*,因为跳转的action方法名前面有user_*,*是通配符,意思就是匹配所有的
      class:必须和bean的id相同
      method="{1}":1指第一个号 ,提交action时,1会变为代表的内容:详解 method=”{1}”
       <result>
            name="registPage":name值必须和UserAction中方法返回的值一样
             <result>标签中间写呈现页面.jsp的绝对路径

【执行的过程】

  1. 点击链接
  2. 去struts文件中找name为user_registPageAction的Action,而有一个<Action>标签的name为user_*,(*为通配符),所以对应了此标签
  3. 根据class=”userAction”去applicationContext.xml找id为userAction的<bean>
  4. 找到<bean>后,根据class去指定目录下找对应的UserAction
  5. 找到UserAction后,执行registPage(),将结果返回到struts.中
  6. struts根据返回结果<result>要显示的.jsp页面

理解:id相当于主键,classs相当于外键

【拓展】

1.struts.xml:为struts 2 的核心配置文件

  • 主要负责管理应用中的Action映射,以及该Action包含的Result定义等
  • 配置Struts项目的一些全局属性,用户请求和响应Action之间的对应关系,处理结果的返回页面,相当于请求与响应的桥梁

2.applicationContext.xml:加载外部配置文件(作用很多,这只是目前了解到的)

3.WEB-INF:是不能直接让用户访问到的,所以添加了Action

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值