struts工程建立配置细节

时间:2023-03-09 00:54:29
struts工程建立配置细节

ActionForm

ActionForm是用于存放表单提交的数据。

1.一个action是否必须配置一个actionForm,可以没有
2.一个action是否可以配置多个表单?不可以,最多一个

在jsp页面表单提交后调用某个action(此action又与一个ActionForm相关联),表单中的数据就会放在ActionForm中。

public class UserForm extends ActionForm 
定义属性(这里有一个规范,我们定义属性名字的时候,应该和jsp页面控件的名称一样)
表单的属性名字是否和控件名是否一致?
不一定,只要保证set和get方法与属性名存在关联:setXxxx getXxxx Xxxx表示jsp控件的名称,首字母要大写

还有要注意action的路径(/web应用名/action path.do)

<form action="/Strutslogin/login.do" method="post">

struts工程建立配置细节

struts-config.xml文件的配置:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE RootElement PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "struts-config_1_3.dtd">
<struts-config>
<!--配置表单 -->
<form-beans>
<!--name是表单的名字,可以随意定义,建议取名规范表单类名小写 -->
<!-- type用于指定表单类的全路径 -->
<form-bean name="UserForm" type="com.xidian.forms.UserForm"></form-bean>
</form-beans>
<!-- 配置action -->
<action-mappings>
<!-- 配置具体的一个action path:表示将来访问该action的资源名,http://localhost:8080/web应用/path? -->
<!-- name:用于关联某个表单 -->
<!-- type用于指定action类的全路径 -->
<!--scope="request" 表示action对应的表单对象的生命周期是request级别的 总控制器相当于request.setAttribute("UserForm",UserForm);-->
<!--scope="session" 表示action对应的表单对象的生命周期是session级别的 总控制器相当于request.getSession().setAttribute("UserForm",UserForm);-->
<!-- 默认为session状态 -->
<action path="/login" name="UserForm" scope="request" type="com.xidian.action.LoginAction">
<!-- 这里配置跳转关系 -->
<!-- name表示结果名称 path:转发到哪个页面 -->
<forward name="ok" path="/wel.jsp"></forward>
<forward name="err" path="/err.jsp"></forward>
</action>
</action-mappings>
</struts-config>