摘要: 我们在Struts开发中,一般对于一个Action来说,我们会给其定义success的导向路径,如:!-- Browse Notices --action path="/BrowseNotices"type="com.jointforce.action.BrowseNoticesAction"forward name="success" path="/jsp/browsenotices.jsp"//action这是非常普遍的一个现象,但如果success的导向页面不是一个jsp文件,而是另外一个Action呢?比如,删除一条记录后,我们要页面导向到浏览页面,自然,就要求在删除这 阅读全文
posted @ 2011-01-13 22:57 super119 阅读(289) 评论(0) 推荐(0) 编辑
摘要: [代码] 阅读全文
posted @ 2011-01-13 22:56 super119 阅读(960) 评论(0) 推荐(0) 编辑
摘要: 在windows下,tomcat启动之后有一个黑窗口,很容易看到System.out.println或ex.printStackTrace这样的函数输出,非常方便调试,但是在linux下,没有这样的窗口,所以给我们调试带来了一定难度。不过其实tomcat是有地方可以让我们看到这些输出的,那就是logs目录下的catalina.out文件!!这个文件会存放所有的log信息和print信息,所以,再也不用痛苦看不到调试输出信息了,看这个文件就OK了 阅读全文
posted @ 2011-01-13 22:56 super119 阅读(4765) 评论(0) 推荐(0) 编辑
摘要: 一篇关于web.xml配置的详细说明1 定义头和根元素部署描述符文件就像所有XML文件一样,必须以一个XML头开始。这个头声明可以使用的XML版本并给出文件的字符编码。DOCYTPE声明必须立即出现在此头之后。这个声明告诉服务器适用的servlet规范的版本(如2.2或2.3)并指定管理此文件其余部分内容的语法的DTD(Document Type Definition,文档类型定义)。所有部署描述符文件的顶层(根)元素为web-app。请注意,XML元素不像HTML,他们是大小写敏感的。因此,web-App和WEB-APP都是不合法的,web-app必须用小写。2 部署描述符文件内的元素次序X 阅读全文
posted @ 2011-01-13 22:53 super119 阅读(279) 评论(0) 推荐(1) 编辑
摘要: 和HttpUnit不同,JMeter是做压力测试的,而且JMeter不仅可以对web应用做测试,也可以对FTP服务器、LDAP服务器等进行测试。本文讲述如何使用JMeter来给web应用做测试首先是新建一个TestPlan和一个ThreadGroup,然后在里面加上各种各样的组件,也就是说,搞明白了JMeter的这些组件,测试就能做了,所以首先给出我本次测试EasyCluster的TestPlan文件:更直观一些,这里有张截图:首先我们新建一个ThreadGroup,Number of Threads表示模拟多少个用户来进行测试;Ramp-up Period表示多长时间把所有的Thread启完 阅读全文
posted @ 2011-01-13 22:52 super119 阅读(5570) 评论(2) 推荐(0) 编辑
摘要: JSVC是apache出的所谓common daemon的一个工具套件,他利用一个daemon程序,从而使tomcat这样的程序能在开机的时候自动启动,而且能使tomcat被 chkconfig这样的工具所管理。在之前的一篇文章中对jsvc有详细的说明和介绍,这里不再赘述了。JSVC download下来是源码版本,需要自己编译,编译很简单,如下(假设我们已经解开包,位于jsvc源码的根目录下):1、sh support/buildconf.sh # 生成configure脚本2、./configure # 要求JAVA_HOME已经正确设置,如未设置JAVA_HOME,那么,要这样:./co 阅读全文
posted @ 2011-01-13 22:50 super119 阅读(6241) 评论(0) 推荐(0) 编辑
摘要: 在一个connection pool的配置中加入以下几行:CODE:SELECT ALLparameter nameremoveAbandoned/name valuetrue/value /parameter parameter nameremoveAbandonedTimeout/name value60/value /parameter parameter namelogAbandoned/name valuetrue/value /parameterTomcat会自动为我们寻找没有被代码close的ResultSe 阅读全文
posted @ 2011-01-13 22:50 super119 阅读(348) 评论(0) 推荐(0) 编辑
摘要: html:select是支持多选的,单选的时候很简单,后台就是接受一个String,多选的时候如何处理呢?1、创建一个可以多选的select控件需要在属性列表中加入multiple="true"这样的代码,如下:CODE:SELECT ALL html:select property="userlist" size="6" styleClass="uglimitselect" multiple="true" % for (i=0; iuserlist.size(); i++) { tmpstring = (String)userlist.get(i); % html:option 阅读全文
posted @ 2011-01-13 22:49 super119 阅读(758) 评论(0) 推荐(0) 编辑
摘要: 再读Struts-1.3.5 User Guide 2第二部分 Building View Components1. Struts framework在view方面提供的东西有:MessageResource(for i18n), Formbean用来自动组装form表单和提供validation,taglibs2. Internationalized Messages. 国际化,JAVA语言本身在国际化方面提供了如下支持:(1) Locale class. 用来给我们定义一个locale(2) ResourceBundle. 这其实是一个抽象类,不是一个实现,通过这个接口里面的方法,我们可以 阅读全文
posted @ 2011-01-13 22:47 super119 阅读(252) 评论(0) 推荐(0) 编辑
摘要: 第一部分 Building Model Components1. Model是架构在javabean上的,本节也主要是讲解各种各样的javabean(按功能分),但不论是什么javabean,都有四种scope(所谓scope就是指javabean的lifetime和visibility):page -- beans只在一个jsp page中可见,lifetime是当前的request(底层一点来说,这个bean的实例是service方法中的local变量)request -- beans在一个jsp page中可见,而且在该jsp page所include的,或forward过去的所有jsp 阅读全文
posted @ 2011-01-13 22:47 super119 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 第三部分 Building Controller Components1. 本文前面部分都在讲解一些Control的基本概念和ActionForm Bean,这就不再赘述了2. Action Class Design Guidelines.(1) 书写一个thread-safe的Action class. Struts的Controller servlet只会创建一个我们的Action class的实例,然后用这个实例去服务所有的request. 但是,有可能这个Action class是多线程的,所以我们要写thread-safe的代码。记住以下两点即可:首先,在Action class中不 阅读全文
posted @ 2011-01-13 22:46 super119 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 第四部分 Configure Applications1. 本文主要讲述web.xml, struts-config.xml这些文件的配置。2. struts-config.xml中的controller element,这里面定义了ActionServlet的一些行为,有有关file upload的,http no-cache的等,具体可以看struts-config.dtd或参考本文中的列表。可以看到,上传文件默认的最大文件大小是250M,Struts默认会在用户的session中加入Locale信息,pagePattern, forwardPattern默认都是$M$P(module 阅读全文
posted @ 2011-01-13 22:45 super119 阅读(286) 评论(0) 推荐(0) 编辑
摘要: EC2.0的提交任务分成两个阶段,第一阶段,也就是用户在界面上点击了提交任务链接后,进入PreSubmitJob阶段,此时读写一些必要的信息,然后给出Form,用户Form填写完成提交后,进入第二阶段SubmitJob阶段。本来的想法是把这两个阶段的代码都合并在SubmitJobAction中,根据用户是否填写了jobname这个字段来判断应该执行哪个阶段的代码。事实证明这是非常错误的,因为SubmitJob带validate form,一旦点击了提交任务后,Struts就会生成Form,然后验证Form中的这些字段是否被正确设置了。显然这些字段都没有设置呢,于是Struts根本就不执行Act 阅读全文
posted @ 2011-01-13 22:43 super119 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 首先,MySQL支持limit关键字,这个关键字可以让MySQL只返回我们指定的一段记录,比如:select * from usermsgbox limit 3这条SQL语句就可以让MySQL返回usermsgbox表中的前三条记录,也可以这样:select * from usermsgbox limit 1,3这个意思是这样的:返回usermsgbox表中第二条记录开始往后的三条,也就是2,3,4这三条记录。这里要千万小心了:(1)limit的第一个参数是从哪条记录开始,注意,这里第一条记录在limit中编号是0,所以上述例子中limit从1开始,其实是从第二条记录开始;(2)第二个参数3指 阅读全文
posted @ 2011-01-13 22:43 super119 阅读(931) 评论(0) 推荐(0) 编辑
摘要: EC2.0中,配置了多个module(portal和admin)。除了在调用一些action的时候,需要用到SwitchModule等手段之外(具体看以前发过的Struts学习心得文章),还需要注意一些其他的问题,比如,这里讨论的手写的URL的问题。EC2.0的Portal部分的提交任务中,有一个选择outputdir和executable的界面。在选择outputdir和executable的时候,jsp中用的是window.open的方法打开一个窗口,给出的URL是当前目录下的 browsefilewindow.jsp?....... ,在这样的情况下,这个browsefilewindow 阅读全文
posted @ 2011-01-13 22:42 super119 阅读(290) 评论(0) 推荐(0) 编辑
摘要: Struts提供的html:messages和html:errors可以很方便的让我们显示信息。他们两个标签不一样的地方是,html:messages有点像logic:iterate,有id属性,定义了id属性之后,就可以循环用bean:write来显示每个消息资源。html:errors虽然也可以显示多个消息,但是他是一股脑的将信息显示出来,没有id属性。我们只能通过footer, header, prefix, suffix这四个属性来控制每个消息之间的HTML格式。在后台方面,对应这两个标签,也牵涉了四个方法:saveMessages, saveErrors。这两 阅读全文
posted @ 2011-01-13 22:41 super119 阅读(1254) 评论(0) 推荐(0) 编辑
摘要: 1. 在多module配置下使用validate,需要在每个module的xml文件中加入:CODE:SELECT ALLplug-in className="org.apache.struts.validator.ValidatorPlugIn" set-property property="pathnames" value="/WEB-INF/validator-rules.xml, /WEB-INF/validation-portal.xml"//plug-in这样的定义,注意,每个module的validation文件,比如上述的validation-portal.xml 阅读全文
posted @ 2011-01-13 22:41 super119 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 当我们在一个Struts的项目中定义了多个module之后,一般会出现以下几种情况要在多module之间产生调用:1. 页面上的链接。页面上一个链接,该链接要调用到非本module的一些action,此时有两种方法:A. 使用html:link module="xxx" ......,这样就OK了,如果要调用根module的action,将 module="" 即可。B. 使用Struts自带的SwitchAction class。可以首先在struts的配置文件中配置这样一个action:CODE:SELECT ALLaction-mappings action path="/t 阅读全文
posted @ 2011-01-13 22:40 super119 阅读(562) 评论(0) 推荐(0) 编辑