分享
 
 
 

Eclipse3.0.1+Myeclipse3.8.2+tomcat5开发第一个struts应用(实战篇)

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

配置好了,那么我们一起用MyEclipse来做一个小小的Struts应用吧。

1.新建Struts Project

File-->New-->Project

选择J2EE-->Web Project,确定,起个名字,这里就叫demoStruts,然后Finish.

2.“升级”project

选中左边列表中你刚才建立的demoStruts工程,点击菜单栏MyEclipse-->Add Struts Capabilities

设置属性,一般都默认,可以改下你的package的目录结构。“升级”后的project相当于struts-blank

的结构。

3.开始写程序,这些是我自己对程序的理解,可能不科学,不过应该可以让struts更好懂。

这个小程序判断输入的产品是否存在,并且出现2种不同的情况。

首先先说这2个xml配置文件。

web.xml

基本上不用动的,在MyEclipse里面还有design图,非常方便阅读。

如果你喜欢有个性,可以把servlet-mapping 里的url-pattern改为你喜欢的后缀,这里就不改了,嘿嘿。

struts-config.xml

这是struts里面最主要的配置文件,一定要细心的写,以前我少了个“/”,结果运行就出现问题了,惨啊!

初期这里最主要是定义<form-beans> <global-forwards> <action-mappings>.

<form-beans>是指定需要提交的表单需要送到哪里。

这里我们定义

<!-- ================================================ Form Bean Definitions -->

<form-beans>

<form-bean

name="DemoForm"

type="com.yourcompany.struts.DemoForm"/>

</form-beans>

<global-forwards>是定义在程序里面需要跳转到哪个页面的。

<!-- =========================================== Global Forward Definitions -->

<global-forwards>

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

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

</global-forwards>

<action-mappings>也是定义跳转到什么页面,但不同的是程序在遇到*.do的情况下才会用<action-mappings>

<!-- =========================================== Action Mapping Definitions -->

<action-mappings>

<action path="/inputProduct" type="com.yourcompany.struts.CheckAction" name="DemoForm" scope="request" input="/index.jsp" />

<action path="/aboutUS" forward="/aboutus.jsp" />

<action path="/failedIn" forward="/alreadyExist.jsp" />

</action-mappings>

大家仔细看下也可以看到,如果程序逻辑运算后是alreadyExist,通过<global-forwards>转向

failedIn.do,然后由于是*.do的形式,又要按<action-mappings> 跳转到/alreadyExist.jsp。

把这些代码替换struts-config.xml里的相应部分吧,然后看看这个xml文件的design,非常清楚哦。

下面制作jsp文件。

在MyEclipse里面WebRoot下建立4个jsp文件。

第1个是首页和表单(index.jsp)。

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

<%@ page import = "com.yourcompany.struts.*" %>

<a href="aboutUS.do">关于我们</a><br>

<form action="inputProduct.do" method="post">

产品 I D:<input type="text" name="productId"><br>

<input type=submit value="检测产品">

</form>

第2个文件是关于我们(aboutus.jsp)

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

<h1>关于我们。。。。。。。。。。。。</h1>

第3个文件是如果里面有产品的情况,并显示产品属性。(alreadyExist.jsp)

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

<jsp:useBean id="beanProduct" class="com.yourcompany.struts.DemoForm" scope="session"/>

库内有此产品<br>

产品ID:<%=beanProduct.getProductId()%><br>

产品名称:<%=beanProduct.getProductName()%><br>

第4个文件是显示库里面没有这样的产品(inputProduct.jsp)

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

库内没有该产品!

最后是DemoForm和DemoAction

在src的com.yourcompany.struts下新建2个java文件

DemoForm.java

package com.yourcompany.struts;

import org.apache.struts.action.ActionForm;

public class DemoForm extends ActionForm{

private String productId="001";

private String productName="Structs程序";

public String getProductId(){return productId;}

public String getProductName(){return productName;}

public void setProductId(String productId){this.productId=productId;}

public void setProductName(String productName){this.productName=productName;}

}

DemoAction.java

package com.yourcompany.struts;

import java.util.Locale;

import javax.servlet.*;

import javax.servlet.http.*;

import org.apache.struts.action.*;

import org.apache.struts.util.MessageResources;

import com.yourcompany.struts.DemoForm;

public final class DemoAction extends Action{

public ActionForward execute

(ActionMapping mapping,ActionForm form,

HttpServletRequest request,

HttpServletResponse response)

throws Exception

{

Locale locale = getLocale(request);

MessageResources messages = getResources(request);

HttpSession session = request.getSession();

DemoForm demoform = (DemoForm) form;

if( "001".equals(demoform.getProductId()) )

return (mapping.findForward("failedIn"));

else return (mapping.findForward("inputProduct"));

}

}

程序准备就绪了,然后点击菜单上的Deploy J2EE project to server

选择demoStruts,点add.选择tomcat deploy.

就ok了,程序自动填加到了tomcat的webapps下。你可以启动tomcat用ie访问了或者

运行myeclipse里面的tomcat,然后用自带的WebBrowser运行程序。

http://localhost:8080/demoStruts/index.jsp

当输入001,那么就进入显示已有产品的页面,如果输入其他则提示没有这个产品。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有