分享
 
 
 

在JBuilder+Tomcat下开发sturts

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

1.对JBuilder而言:要在configure Runtimes中配置main class就需要有一个Application.否则单个的dos程序是无法直接运行的(因为无法设置main class);。

2.在Tomcat5.0中使用外来的JSP程序:

(1)用JBuilder来实现的方法是:新建一个有含基本的JSP(在没有特殊需求的条件下,

可选用默认的最小化该JSP,然后设置Server Enterprise,即可在localhost:8083在JBiulder内部运行.同时在D:\Tomcat\Tomcat 5.0\conf\Catalina\localhost目录下

生成个文件,在loacalhost:8080/该文件名 即可访问JSP.

(2)当要在D:\Tomcat\Tomcat 5.0\webapps\jsp-examples下实现访问JSP,方法同Servlet,而且需要Jsp的class文件,只有通过JBIulder来编译生成。然后把class

文件放到D:\Tomcat\Tomcat 5.0\webapps\jsp-examples\WEB-INF\classes\org\apache\jsp下再把JSP文件放到D:\Tomcat\Tomcat 5.0\webapps\jsp-examples的任一文件(都可自己另行创建).然后修改相关的WEB.xml文件(按照目录分级特点进行)

3.在对文件(特别是类名)的命名时要注意尽可能的不要用关键字进行命名,对于以提供的名称可以把首单词改有代表意义的单词。

4.原来的<struts_template>使用<struts_nested>代替。

5。在配置tomcat的时候要检验是否存在lib和classes文件。

6.对于struts的运行模式是前台一个Jsp文件对.do进行请求

而这个.do是由一个action和actionform形式的.class文件组成,

且struts-config扮演两者被.jsp文件访问的桥梁(由对该文件进行配置来实现)

7.注意tile_ref文件在数据转递的过程中的角色。

8。在建立web molumer时要把build war设置成:when building project or webapp.

9.lib中的文件.jar和.xml在编译的时候会自动产生,而web-inf中.tld文件则需要另行向里加.

10.把struts-example安装(把.war文件放到/webapps下,启动tomcat会自动安装),用法jsp.

11.在配置web.xml文件的时候,要新加 <init-param>

<param-name>definitions-config</param-name>

<param-value>/WEB-INF/tiles-defs.xml</param-name></init-param>到

<servlet>

<servlet-name>action</servlet-name>

<servlet-class>org.apache.struts.action.ActionServlet</servlet-class> 下!

12.STRUTS的制作流程:

1.建立一个JBiulder工程,并进行命名。

2.建立一个Web Module(WAR)文件。Create an empty Web Module,依次选中最新的组件,(servlet 2.4,JSP2.0,Struts 1.1).

3.把出现的在WebModule页下的Tag Library都改为:WEB-INF/struts-tiles

4.建立第一个jsp文件作为整个工程的启动页。(并在选择标签(tag)是选择各种标签,其中struts-template不要选。)

依次建立其他的jsp文件即可。

同时注意到每一个在jsp中引用自定义的包名是小写,因为jbuilder默认是小写,不管实际的情况,可以通过编译发现汇报错。但在对应的java文件不一样,必须严格一致。

5.建立actionform文件,按默认即可。

6.建立action文件:第一步可按默认action起名。第二步是对struts-config 文件进行配置。

1.当对选项进行合理的设置后:struts_config.xml中会增加如下:

<form-beans>

<form-bean name="uploadForm" type="secondstruts.UploadForm" />

</form-beans>

<action input="/upload.jsp" name="uploadForm" path="/untitled1Action" scope="request" type="secondstruts.Untitled1Action" validate="true" />

但这通常不够:可以改写如下:

<form-beans>

<form-bean name="uploadForm" type="secondstruts.UploadForm" />

</form-beans>

<action-mappings>

<action path="/upload" forward="/upload.jsp" />//就有在浏览器上的upload.do和action=”upload.do”h或action=”upload”

<!-- Upload Action -->

<action path="/upload-submit" type="secondstruts.UploadAction" name="uploadForm" scope="request" input="input">

<forward name="input" path="/upload.jsp" /> //这种方法可以使得actionFrom获取表单的值,

<forward name="display" path="/display.jsp"/>//然后进行请求操作会返回一个findmapping进行页面的倒转。

//代表有多少个连续操作,例如上面就是:upload.jsp对display.jsp的请求访问。

</action>

7.这个工程中的文件编译后,会在WEB_INF中生成.xml文件,并同时需要把*.tld文件拷到该目录下。

8.按一般的生成的struts-config.xml文件中会有有关相应的.xml文件。

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">

<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />

</plug-in>//通常没有问题

<plug-in className="org.apache.struts.tiles.TilesPlugin">

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

</plug-in>//通常会出现错误。且该文件要自己编写有关对其他的*-config.xml文件(非struts-config.xml)见D:\Tomcat\Tomcat 5.0\webapps\tiles-documentation\WEB-INF中的一些该文件,是与WEB-INF同目录的文件夹(例:ass)中一些jsp文件相关的,同时用一个大tiles-ass-defs.xml来对将要ass 目录下的显示页上所有的用到的.do的文件的action-mapping进行描述(是通过用ass.xx.xxx方式),目的是使得然后再在对应的structs-ass-config.xml中加入:(tiles-defs.xml与struts-config.xml相对应)

<plug-in className="org.apache.struts.tiles.TilesPlugin" >

<set-property property="definitions-config"

value="/WEB-INF/tiles-defs.xml, /WEB-INF/tiles-doc-defs.xml" />

<set-property property="moduleAware" value="true" />

</plug-in>

</struts-config>

和部分的actionmapping即可(在jbuiler中默认生成tiles-defs.xml文件,但在工程小的时候并不给他进行操作,会在服务器启动的时候检查配置文件是会出错的。故在struts-config中删除:

<plug-in className="org.apache.struts.tiles.TilesPlugin">

<set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />

</plug-in>即可。(因为<tiles-defonation/>与模式不配。

9.Web.xml文件通常不用配置。

10.在jbiulder中创建的工程编译后生成一系列的文件位于D:\project\work\下,可以对出错的问题进行直接查看这些文件。

11.可用JSPFromActionFrom(file/new file/web中)生成对应的jsp文件,在选择action class 是不要用broswer而是直接用research进行搜索到自己所要的,也是自定义的action class文件的文件名,即可找到。(这种方法针对要引用自定义的包中的类可选用)。

12.对于有关用JBuilder操作时,可严格按操作过程来执行,可以用<action path="/upload-submit" type="secondstruts.UploadAction" name="uploadForm" scope="request" input="input">

<forward name="input" path="/upload.jsp" /> ……

来获取upload.jsp的form中的值。但操作出现错误是会被警告input必须使用一个path(即”/*.jsp”),这时可以用HttpServletRequest类的getparameter(“”)来获取form中的值,然后即actionForm可获取所有的值。其他与一般的相同:

对于包含文件传输的form,就需要在form中添加:Boolean maxLengthExceeded =

(Boolean) request.getAttribute(

MultipartRequestHandler.ATTRIBUTE_MAX_LENGTH_EXCEEDED);才能完成对form的进行mapping.

<action-mappings>

<action forward="/submit.jsp" path="/submit" />

<!-- submit Action -->

<action path="/submit-submit" name="sumbitActionForm" scope="request" type="friststruts.sumbitAction" validate="true" input="/failure.jsp">

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

<forward name="success" path="/deploy.jsp" />

</action>

13.根据struts的特点,一般不在actionFrom中有任何业务处理,通常只有get/setXXX方法和一个validate方法,而且有近可能的减少处理。

而Action中的主要在execute方法中有有关于调用外部的javaBean进行数据处理和findMapping进行到转显示。也避免大量处理。

14 配置web.xml文件:

1. 不管应用中包含多少子应用,都只需要配置一个ActionServlet。配置多个ActionServlet类来处理应用中不同的功能,其实是没必要的,因为Servlet本身支持多线程。而且,目前的Struts框架只允许在应用中配置一个ActionServlet。

2. 配置welcome file list,看到这里在想,为什么会要多个欢迎页呢?这多个页面又是如何调用?原来是这样:<welcome-file-list>元素可以包含多个<welcome-file>子元素,调用从叙照第一个指定的文件开始,如果这个文件存在,将把这个文件返回给客户;如果该文件不存在,则依次寻找下一个欢迎页面的文件,直到找到为止;如果所有文件不存在,服务器将向客户端返回“HTTP 404 Not Found”的出错信息。

3. 在<welcome-file-list>元素中不能配置Servlet映射,因此不能直接把Struts的Action作为欢迎文件。但是可以通过配置一个全局的转发项来实现。

配置多应用模块:

1. 为每个子应用创建单独的Struts配置文件;

2. 在web.xml的ActionServlet的配置代码中添加每个子应用信息;

3. 采用<forward>元素或SwitchAction类来实现子应用之间的切换。

多个子应用模块之间的切换:

例如,用从默认模块切换到ModuleB:

http://localhost:8080/toModule.do?prefix=/moduleB&page=/index.do

从ModuleB切换到默认模块:

http://localhost:8080/toModule.do?prefix=&page=/index.do

15. 在用到form的时候,可以在外部设一个bean用来对数据进行并在ActionForm中使用,并在其中定义一系列的操作.然后再向Action中传递参数。

16.可以使用DynaActionForm类来取代编写一个ActionFrom,要在config-struts中设定如下:

<form-bean name="sumbitActionForm" type="org.apache.struts.action.DynaActionForm" >

<form-property name="name" type="java.lang.String" initial="gaolong"/>

<form-property name="password" type="java.lang.String"/>

<form-property name="email" type="java.lang.String"/>

</form-bean>

然后在action中直接应用DynaActionForm的各种方法可对form进行验证,并可以通过get方法获取对应的值。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有