传智播客struts学习,strust标签和formbean的原理及作用

         今天张老师讲了一些比较重要的strust标签,<html:link>,<html:text>。formbean的原理及作用,还有formbean表单校验以及表单校验后如何处理,并进行了举例验证说明,把例子代码敲了一遍,颇有收获。


<html:link>标签的三个好处:
使用<html:link action=“/action”/>不用关心web应用程序的路径和ActionServlet的映射路径。
       可以自动在url后面附加jsessionid参数进行url重写。可以用以下方法进行验证。启动一个新浏览器访问第一个Action,查看<html:link>生成的超链接地址,刷新后再查看这个超链接地址,比较差异可以看到<html:link>标签的url重写功能。
       可以对参数信息进行url编码。 另外: jtsl标签<c:url>标准标签也有<html:link>标签的后两个作用。
       在使用<html:link>标签时需要注意的是:
     在<html:link>的action属性值的路径后中直接加参数,但是不能对其中的中文字符进行url编码。
使用paramID和paramName等属性设置一个参数,可以完成中文参数的url编码。
可以使用name和property属性来设置多个参数。

<html:text>必须放在<html:form>标签中,回显时就是从那个<html:form>关联的formbean中取出的数据。<html:form>的action属性用于指定它要关联到的formbean。action属性指定的Action类必须有它关联的formbean,否则会出异常。<html:form>会创建一个formbean,这样其包含的<html:text>才会从formbean中取数据进行回显。在表单提交之前生成的formbean是空的,里面不包含数据。(张老师找到了源代码进行说明)可以设置一个int型的age在jsp页面用<html:text>进行显示,第一次打开页面就显示0,因为int型的默认值为0,也能够验证这个。
<html:text>的两个作用,1,生成<input type="text">代码,2,其property属性的值填充进文本框。
formbean的工作原理
     如果某个Action关联了一个FormBean,那么,当浏览器请求这个Action时,Struts框架将创建这个FormBean,把这个FormBean存储在相应的Web域中,并用请求参数来填充这个formbean。
对于请求消息中的每个参数(包括网页表单中的每个字段),其相关的ActionForm 通常都有一个对应的属性来接受相应的参数值。
FormBean表单校验,formbean可以对填充其的每个参数进行校验,校验出错了就返回到刚才填写表单信息的页面,并显示上次填入的内容和错误提示信息。错误信息和表单中原来填写的数据是如何传递给jsp页面呢? 把数据装在一个对象中,再把对象存储在request作用域中。这样就可以在JSP页面中取出Request域中是数据并进行显示了。validate方法返回的errors对象就是要给后面的jsp页面显示用的,errors对象中要存储的就是要显示错误信息,把errors存储在request中,应该使用request.setAttribute(“属性名”,erros);存入的属性名是一个固定的特殊名称,这样<html:errors>才能使用这个属性名从请求域中取错误。存储的关键字是Globals.ERROR_KEY。
  

你可能感兴趣的:(html,jsp,struts,url,存储,action)