欢迎光临
我们一直在努力

struts-helloapp 学习小记-JSP教程,Java技巧及代码

建站超值云服务器,限时71元/月

<html:errors>:用于显示struts框架中其他组件产生的错误消息。

<html:form>:用于创建html表单,它能够把html表单的字段和actionform bean的属性关联起来。

<html:text>:该标签是<html:form>的子标签,用于创建html表单的文本框。它和actionform bean的属性相关联。

<bean:message>:用于输出本地化的文本内容,它的key属性指定消息key,和消息key匹配的文本内容来自于专门的resource bundle

<bean:write>:用于输出javabean的属性值。本例中,它用于输出personbean对象的username属性值:<bean:write name="personbean" property="username" />

<logic:present>标签用来判断javabean在特定的范围内是否存在,只有当javabean存在,才会执行标签主体中的内容。

 

控制器组件包括actionservlet类和action类。actionservlet类是struts框架自带的,它是整个struts框架的控制枢纽,通常不需要扩展。struts框架提供了可供扩展的action类,它用来处理特定的http请求。

 

当用户提交了html表单,struts框架自动把表单数据组装到actionform bean中。actionform bean中的属性和html表单中的字段一一对应。接下来struts框架会自动调用actionform bean的validate()方法进行表单验证。如果validate()方法返回的actionerrors 对象为null,或者不包含任何actionmessage对象,就表示没有错误,数据验证通过。如果actionerrors中包含actionmessage对象,就表示发生了验证错误,struts框架会把actionerrors对象保存到request范围内,然后把请求转发到恰当的视图组件,视图组件通过<html:errors>标签把request范围内的actionerrors对象中包含的错误消息显示出来,提示用户修改错误。

 

action类的工作机制:当actionform bean被创建,并且表单验证顺利通过后, struts框架就会调用action类的execute()方法。execute()方法包含以下参数:

actionmapping:包含了这个action的配置信息,和struts-config.xml文件中的<action>元素对应。

actionform:包含了用户的表单数据,当struts框架调用execute()方法时,actionform中的数据已经通过了表单验证。

httpservletrequest:当前的http请求对象

httpservletresponse:当前的http响应对象

action类的execute()方法返回actionforward对象,它包含了请求转发路径信息。

 

当helloaction类调用httpservletrequest的setattribute()方法,向hello.jsp传递personbean对象时,需要提供一个名为“personbean”的属性key:

request.setattribute("personbean",pb);

hello.jsp通过这个名为“personbean”的属性key来读取personbean对象:

<logic:present name="personbean" scope="request">

 <h2>

       hello <bean:write name="personbean" property="username" />!<p>

 </h2>

</logic:present>

 

<action    path      = "/helloworld"       //指定请求访问action的路径

          type      = "hello.helloaction"  //指定action的完整类名

          name     = "helloform"        //指定需要传递给action的actionform bean

          scope     = "request"           //指定actionform bean的存放范围

          validate   = "true"              //指定是否执行表单验证

          input     = "/hello.jsp">         //指定当表单验证失败时的转发路径

<forward name="sayhello" path="/hello.jsp" /> //定义了一个请求转发路径

</action>

本例中的<action>元素配置了helloaction组件,对应的类为hello.helloaction,请求访问路径为“helloworld”,当action类被调用时,struts框架应该把已经包含表单数据的helloform bean传给它。helloform bean存放在request范围内,并且在调用action类之前,应该进行表单验证。如果表单验证失败,请求将被转发到接收用户输入的网页hello.jsp,让用户纠正错误。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » struts-helloapp 学习小记-JSP教程,Java技巧及代码
分享到: 更多 (0)

相关推荐

  • 暂无文章