传智播客——struts框架原理及应用(三)struts标签

来源:互联网 发布:C语言可以做哪些软件 编辑:程序博客网 时间:2024/05/01 05:48

一,经常出现的错误
产生的错误1:
    Cannot retrieve mapping for action: "/"
      是使用:<html:form>标签 ,使用html:form时,action属性必须在struts-config.xml
        文件中,由对应的action的映射<action path-="/">
      <html:form>标签中的action属性必需存在,并且值不能为""
产生的错误2:   
     Form bean not specified on mapping for action: "empSave.do"
      只用使用<html:form>标签,
          struts-config.xml文件中<action path="">标签中的name属性必须要有对应的值
二,struts标签和html标签的对照关系    
<html:form>:
    源代码:
    <!-- 该标签没有name属性 正常的,他使用action标签中attriute属性的值作为转化后name属性的值 -->
    <html:form action="empSave.do" > 
    转化后的代码:
   <form name="empForm" method="post" action="/itcast0115StrutsHtmlTaglib/empSave.do"> 
   
<html:text>:
    源代码:
   <html:text property="name"/>
     在解析的过程中:获取在actionForm中查找name属性的值,由显示,没有不显示
     转化后的代码中value的取值流程:
       如果在<html:text property="name" value="eeeee"/>标签中直接设置值
            results.append("eeeee");
       如果在<html:text property="name"/>标签中没有直接设置值      
           如没有指定作用域:
            pageContext.findAttribute("xxxx")
           如果指定作用域 
            pageContext.getAttribute(name, 作用域的名称);
            上面从作用域中获取的值是actionForm类型,调用get方法获取ActionForm中属性的值    
       其他的是""
     转化后的代码:  name属性的值就是 <html:text>中property属性的值
   <input type="text" name="name" value="">
  <html:password>
    源代码:
      <html:password property="psw" />
    转化后的代码:
       <input type="password" name="psw" value="">
    错误:
    No getter method for property: "name" of bean: "cn.itcast.struts.form.EmpForm"
    原因:
        actionForm中没有 与<html;text property="">对应的属性,
        没有get方法(获取属性值的方法)
  
 <html:textarea>
    源代码:
      <html:textarea property="des" rows="10" cols="20" value="1234" />
    转化后的代码:
       <textarea name="des" cols="20" rows="10">1234</textarea>
   <html:radio>
    源代码:
      <html:radio property="sex"  value="男"/>男
    转化后的代码:
       <input type="radio" name="sex" value="男">男
   <html:checkbox>
    源代码:
       <html:checkbox property="love" value="不打游戏"/>不打游戏
    转化后的代码:
      <input type="checkbox" name="love" value="不打游戏">不打游戏
   <html:checkbox>
    源代码:
      <html:select property="job">
           <html:option value="模特">模特</html:option>
           <html:option value="java程序员">java程序员</html:option>
           <html:option value="软件工程师">软件工程师</html:option>
           <html:option value="导游">导游</html:option>
       </html:select>
   转化后的代码
     <select name="job"><option value="模特">模特</option>
                   <option value="java程序员">java程序员</option>
                   <option value="软件工程师">软件工程师</option>
                   <option value="导游">导游</option></select>              
              </td>
   <html:submit>
  <html:reset>
   源代码:
       <html:submit value="保存1" >保存</html:submit>
       <html:reset value="重置"></html:reset>
   转化后的代码
      <input type="submit" value="保存1">
      <input type="reset" value="重置">
   三,乱码的解决方法
    使用过滤器(处理字符编码的过滤器)
    重写ActionServlet
学习总结:老师说struts标签最大的作用就是用于表单的回写。如果不用struts表单的回写要写很多东西
   
    

原创粉丝点击