欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

struts 学习笔记(看余立非的电子书) StrutsJSPXMLWebC# 

程序员文章站 2022-05-29 22:47:47
...
Struts学习摘录

1。struts1.1里用jdk1。4,否则Action里出javax.sql.DataSource找不到
2。include 的正确用法是仅将它用于生成诸如页眉和页脚这类内容的HTML代码段
3。Struts鼓励你定义一个包含【所有】字段属性的单独的ActionFormBean。不管字段实际上是显示在哪个页面上。
同样的,同一表单的不同的页面应该提交到相同的Action类。如果按照这样的方法做的话,在大多数情况下,
开发页面的人就可以重新组织不同页面中的字段而不需要改变处理逻辑。
【???全部的多写在一个ActionForm?所有的页面都用一个ActionForm吗】
4。59页  表单控件详细信息
5。建立一个Struts的应用程序的一般步骤:
a)建立一个ActionForm
b)建立一个JSP文件
c)建立一个Action
d)配置struts-config.xml文件

6。资源库中的内容的存放形式是以 变量=值 的方式,不要在=后面加引号,这样会出错的。资源库文件要放在classes目录下。
7。<bean:message/>帮助我们从Struts-config.xml定义的资源文件中得到值,他是一个没有标签体的标签,也就是说【不能】
像【<bean:message>button.submit</bean:message>】这样来使用。

8。使用多个资源文件:
a)新建一个ApplicationResources2.properties ,在里面加入
【logon.success=Success】
放在/WEB-INF/classes/test.struts下面
b)修改你的struts-config.xml文件,在</struts-config>上面加上下面的代码:
<message-resources parameter="test.struts.ApplicationResources2" key="another"/>
c)修改.jsp页面代码,取资源的时候加上指定bundle,如下:
【<bean:message key="logon.success" bundle="another"/>】

9。页面信息验证流程图


11。添加Form的验证功能:
a)在Form类里添加validate()方法
示例代码如下:
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1); {
		// TODO Auto-generated method stub
		ActionErrors errs=new ActionErrors();;
		if(name==null||password==null);{
			ActionError err=new ActionError("error.logon");;
			errs.add("password",err);;
		}
		return errs;
	}


b)在ApplicationResources.properties文件里添加
error.logon=Password Error
c)修改struts-config.xml文件,让validate="true" 【还有input属性!】
d)修改jsp文件,添加<html:errors/>


12。动态创建ActionFormBean 【暂时跳过】P76
第一次:失败:
动态FormBean的type永远都是  type="org.apache.struts.action.DynaActionForm"
在配置文件里  form-bean的dynamic="true"
设置动态属性名和类型

第二次:

13。ActionForm中使用映射属性,用于传递页面之间的临时参数,变量【重要】
在ActionForm中使用Map类,设置两个方法
和一个成员变量:
private java.util.HashMap map=new java.util.HashMap();

在页面上设置的时候用如下语句:
<html:text property="map(ok)"/>【注意:要放在页面上的form里,实质上相当于ActionForm.setMap(key,obj)方法】


在页面上显示的时候用如下语句:
<bean:write name="UserForm" property="map(ok)"/>

14。struts配置多个开发模块,配置如下 :【然后怎么使用呢?】
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <init-param>
            <param-name>config/model2</param-name>
            <param-value>/WEB-INF/struts-config2.xml</param-value>
        </init-param>
       
15。Action中的Method--继承使用DispatchAction类可以根据传入的参数自动调用相应的方法
a)在Action中写处理方法如下:
public ActionForward method1(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
//HelloWorldForm HelloWorldForm = (HelloWorldForm) form;
//throw new UnsupportedOperationException("Generated method 'execute(...)' not implemented.");
return mapping.findForward("success");
}
b)修改struts-config.xml文件,加入Action如下:
    <action           
            type="com.demo.action.TestDispatchAction"
            parameter="method"
            path="/dispatch">
            <forward name="success" path="/web/hello.jsp" />
        </action>
c)访问的时候像这个样子:http://localhost:8080/dispatch.do?method=method1

16。LookUpDispatchAction的使用
要按照不同的目的把表单提交到不同的Action中,通常用在jsp里添加代码实现,现在可以用LookUPDispatchAction类
来解决这个问题了。P92