Struts入门教程 - 第2章 通过Action调用JavaBean

第2章 通过Action调用JavaBean

添加 logic:notPresent 标签

打开上一节创建的 StrutsDemo1 工程。将hello.jsp改为:

<%@ page contentType="text/html; charset=GBK" %>

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

 

<html:html locale="true">

<title>Hello World</title>

<html:base />

<body>

<H2> <bean:message key="index.jsp.abc" /></H2>

 

<logic:notPresent name="stuBean" scope="request">

  zhf - Not find stuBean.

</logic:notPresent>

 

</body>

</html:html>

 

上面的黑体部分的意思是在 "request" 范围内查找名为 stuBean 的对象如果找不到的话就显示zhf - Not find stuBean.。因为我们并没有向hello.jsp传递任何的request,所以现在访问hello.jsp的话就会显示zhf - Not find stuBean.

添加一个叫StudentBeanJavaBean

package hello;

 

public class StudentBean {

     private String name = null;

 

     public String getName() {

           return name;

     }

 

     public void setName(String name) {

           this.name = name;

     }

}

添加logic:present标签

hello.jsp改为

<%@ page contentType="text/html; charset=GBK" %>

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>

<%@ taglib uri="/tags/struts-html" prefix="html" %>

<%@ taglib uri="/tags/struts-logic" prefix="logic" %>

 

<html:html locale="true">

<title>Hello World</title>

<html:base />

<body>

<H2> <bean:message key="index.jsp.abc" /></H2>

 

<logic:notPresent name="stuBean" scope="request">

  zhf - Not find stuBean.

  <logic:forward name="HelloAction" />

</logic:notPresent>

 

<logic:present name="stuBean" scope="request">

  the student name:<bean:write name="stuBean" property="name" />

</logic:present>

</body>

</html:html>

上面的黑体部分的意思是如果在request范围内找到了名为stuBean的对象,就显示它的name属性。当然,由于我们现在还没有把stuBean对象传递给hello.jsp,所以如果访问hello.jsp的话还是会显示zhf - Not find stuBean.

 

添加一个叫HelloActionAction

首先要用Eclipse的菜单Project|Properties|Java Build Path|Libraries”,Add Extenal JARs按钮添加C:/JavaSoft/Tomcat 5.5/common/lib/ servlet-api.jar”C:/JavaSoft/Struts/jakarta-struts-1.2.4/lib/ struts.jar”。然后,新建一个类:

package hello;

 

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.*;

 

public class HelloAction extends Action {

     public ActionForward execute(ActionMapping mappingArg, ActionForm formArg,

                 HttpServletRequest requestArg, HttpServletResponse resqonseAr) throws Exception {

           // Having passed the validate

           StudentBean jcl = new StudentBean();

           jcl.setName("jcl");

           requestArg.setAttribute("stuBean", jcl);

    

           return mappingArg.findForward("hello.jsp");

     }

}

然后把struts-config.xml改为:

<?xml version="1.0" encoding="ISO-8859-1" ?>

 

<!DOCTYPE struts-config PUBLIC

          "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"

          "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

 

<struts-config>

          

  <global-forwards>

    <forward name="hello.jsp" path="/hello.jsp" />

    <forward name="HelloAction" path="/HelloAction.do" />

  </global-forwards>

 

  <action-mappings>

    <!-- path 是访问此Action的路径,为 http://127.0.0.1:9111/strutsDemo1/HelloWorld.do -->

    <!-- type 是此 Action 的完整类名 -->

    <!-- scope 是此 Action 的存放范围 -->

    <!-- validate 指示是否执行验证 -->

    <!-- input 是当验证失败时的转发路径 -->

    <action

            path="/HelloAction"

            type="hello.HelloAction"

            scope="request"

            validate="true"

            input="/hello.jsp"

    />

  </action-mappings>

 

  <message-resources parameter="resource.app-args" />

 

</struts-config>

注意标签的顺序是不能颠倒的。重起Struts应用然后访问http://127.0.0.1:9111/strutsDemo1/HelloAction.do”,就会看见页面显示the student name:jcl”。见下图:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值