Struts+ibatis-学习总结一

1查询并返回list

别名映射->实体类:resultClass
<select id=" selectAll" resultClass="AppLog">
    select
      ID as id,
      TYPE as type,
      DESCR as descr
    from APP_LOG
    where ID = #id#
</select>
List list = sqlMapper.queryForList("selectAll");
for (int i = 0; i < list.size(); i ) {
    AppLog log = (AppLog) list.get(i);
   //add your code here;
}
别名映射->Map类:resultClass
<select id=" selectAll" resultClass="java.util.HashMap">
    select
      ID as id,
      TYPE as type,
      DESCR as descr
    from APP_LOG
    where ID = #id#
</select>
List list = sqlMapper.queryForList("selectAll");
for (int i = 0; i < list.size(); i ) {
    Map map = (Map) list.get(i);
    String id = (String) map.get("id");
    String type = (String) map.get("type");
    String descr = (String) map.get("descr");
   //add your code here;
}
显式映射->实体类:resultMap
<resultMap id="AppLogResult" class="AppLog">
    <result property="id" column="ID"/>
    <result property="type" column="Type"/>
    <result property="descr" column="DESCR"/>   
</resultMap>
<select id="selectAll" resultMap="AppLogResult">
    select * from APP_LOG
</select>
List list = sqlMapper.queryForList("selectAll");
for (int i = 0; i < list.size(); i ) {
    AppLog log = (AppLog) list.get(i);
   //add your code here;
}
显式映射->Map类:resultMap
    <resultMap id="map-result" class="java.util.HashMap">
       <result property="id" column="ID"/>
    <result property="type" column="Type"/>
    <result property="descr" column="DESCR"/>
    </resultMap>
<select id="selectAll2" resultMap="map-result">
    select * from APP_LOG
</select>
List list = sqlMapper.queryForList("selectAll2");
       for (int i = 0; i < list.size(); i ) {
           Map map = (Map) list.get(i);
           String id = (String) map.get("id");
           String type = (String) map.get("type");
           String descr = (String) map.get("descr");       
       }

2,Unknown tag (c:forEach) 未知的标签

需要在

<%@ page language="Java" import="java.util.*" pageEncoding="utf-8"%>下面加一句

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

3<c:foreach>

  <c:forEach>标签,需要与el表达式联合使用
         <c:forEach>标签的语法定义如下所示。
                  <c:forEach var="每个变量名字"   items="要迭代的list"   varStatus="每个对象的状态"
                           begin="循环从哪儿开始"    end="循环到哪儿结束"    step="循环的步长">
                              循环要输出的东西
                  </c:
forEach>

例如

 <table border="1">
   <tr><th>用户名</th>  <th>密码</th> <th>操作</th></tr>
   <c:forEach var="userlist" items="${userlist}">
   <tr><th>${userlist.username}</th>
   <th>${userlist.password}</th>
   <th><a href="">修改</a>  <a href="">删除</a> </th></tr>
   </c:forEach>
   </table>

4、request.setAttribute()和request.getAttribute()

2、request.setAttribute()和request.getAttribute()

set.jsp:

  1. <%@page contentType="text/html; charset=GB2312"%>  
  2. <html>  
  3.     <head>  
  4.         <title>  
  5.             set.jsp file  
  6.         </title>  
  7.     </head>  
  8.   
  9.     <body style="  
  10.         <%  
  11.             request.setAttribute("name","心雨");  
  12.         %>  
  13.         <jsp:forward page="get.jsp"/>  
  14.     </body>  
  15. </html>  

get.jsp:
  1. <%@page contentType="text/html; charset=GB2312"%>  
  2. <html>  
  3.     <head>  
  4.         <title>  
  5.             get.jsp file  
  6.         </title>  
  7.     </head>  
  8.   
  9.     <body style="  
  10.         <%  
  11.             out.println("传递过来的参数是:"+request.getAttribute("name"));  
  12.         %>  
  13.     </body>  
  14. </html>  
 

request.setAttribute()和request.getAttribute()是配合<jsp:forward>或是include指令来实现的。

5   jsp:useBean------

@ page language""=gb2312%>
<jsp:useBean id="user" scope="page" class="com.jsp.ch3.TestBean"/>
<jsp:setProperty name="user" property="*"/>
或者用以下,param可以不填写,其中param对应的是提交页面的表单name
<jsp:setProperty property="userName" name="user" param="userName"/>
<jsp:setProperty property="password" name="user" param="password"/>
<jsp:setProperty property="age" name="user" param="age"/>
<html>
  <body> 
      注册成功:<br>
      <hr>
      使用Bean的属性方法<br>
      用户名: =%><br>
      密码: =%><br>
      年龄: =%><br>
      <hr>
      使用getProperty<br>
      用户名:<jsp:getProperty name="user" property="userName"/><br>
      密码:  <jsp:getProperty name="user" property="password"/><br>
      年龄:  <jsp:getProperty name="user" property="age"/>
      客户端名称:=%>
  </body>
</html>

6 input的不可编辑

disabled="disabled"  是不可以用,只是显示,在Struts2中并不能get input对应id的值;

readonly="readonly"   只读,不可编辑,但是Struts2中能获取值;

 7

1.首先尝试修改表中的字段是否允许为NULL或设置为自增时出现一下提示

2.在工具->选项->Desigers->取消勾选“组织保存要求重新创建表的更改”

8安装多个jdk,配置环境变量时候,没有切换成功

需要在path中调换下jdk的位置,要排在program/orcal/..什么的前面;

9,JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher问题

使用JSON,在SERVLET或者STRUTS的ACTION中取得数据时,如果会出现异常:java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher 

是因为需要的类没有找到,一般,是因为少导入了JAR包, 

使用JSON时,除了要导入JSON网站上面下载的json-lib-2.2-jdk15.jar包之外,还必须有其它几个依赖包:commons-beanutils.jar,commons-httpclient.jar,commons-lang.jar,ezmorph.jar,morph-1.0.1.jar 

这几个包也是需要导入的.如果缺少里面的:ezmorph.jar包,则即出现上述异常 

commons系列的包,可在网站:http://www.docjar.com/上面搜索下载,其它包可下载网站如下: 

http://json-lib.sourceforge.net/ 
http://ezmorph.sourceforge.net/ 

http://morph.sourceforge.NET/

by :http://blog.csdn.Net/hzqcsds/article/details/7190250

10 JavaWeb项目中没有错,但是项目上面显示一个红叉的解决办法

出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK编译版本不一致所导致!

方法/步骤

      1

先设置好jdk,需要确定 项目,eclipse/myeclipse,系统 用的是同一个版本的JDK,我系统中安装的JDK是1.7,所以我把eclipse的jdk成1.7

Java compiler level does not match解决方法

  1. 2

    进入 windows---proferences---java--compiler设置编译出来的文件使用的格式是 1.7版本的 (设置成多少都行,只要兼容,并且与你项目的编译版本一直就可以,我这里统一设置成1.7)

    Java compiler level does not match解决方法
  2. 3

    进入项目--properties---java Compiler 把项目编译版本也设置成 1.7

    Java compiler level does not match解决方法
  3. 4

    进入项目--properties---Myeclipse---project Facets设置java文件的版本为 1.7

    Java compiler level does not match解决方法
  4. 5
原文地址:https://www.cnblogs.com/manmanlu/p/6866124.html