• springmvc错点集结


    <c:forEach items="${material}" var="ma">              //后台传回来的列表必须由foreach接收
    <tr>
    <td align="center">${ma.consumptivematerialname }</td>   //对象值可以直接接收
    <td align="center"><input type="text" style="100px;height:15px" id="resetnum" name="resetnum"/></td>
    <td align="center">3</td>
    <td align="center">4</td>
    </tr>
    </c:forEach>

    -----------------------------------------------------------------------------------------------------------------------------------------------------------

    <td  align="center"><input type="hidden" id="consumptivematerialname" name="consumptivematerialname" value="${ma.id}"/>${ma.consumptivematerialname }</td>   //<td>里面不能放value    放在input里隐藏

    ----------------------------------------------------------------------------------------------------------------------------------------------

    jsp页面显示问题

     <c:if test="${fn:length(item.desc)>50}">${fn:substring(item.desc, 0, 50)}...</c:if>
    <c:if test="${fn:length(item.desc)<=50}">${item.desc}</c:if>

    判断显示元素的长度是否大于50,如果大于50,则截取前50个字符,后面有… 表示。

    ------------------------------------------------------------------------------------------------------------------------------------------------

    客户体验度良好问题

    <p>
    <label style="text-align: right; 80px;">联系电话:</label>
    <input type="text" name="tel" id="add_tel" size="30" class="required" onblur="checktelphone();"/>     //已经写好的星号标记
    <span id="add_tel_span" style="display:none;"><font color="red">不能为空</font></span>          //隐藏的不能为空的标记,颜色为红色
    <span id="add_telnum_span" style="display:none;"><font color="red">必须为数字</font></span>
    </p>

    jquery判断

    var tels = /^+?[1-9][0-9]*$/;       //正则表达式
    if(tel==''){
    $("#add_tel_span").show();         //如果为空,根据ID让内容显示show()
    return;                                     //return返回   拦截ajax提交
    }else
    if(!tels.test(tel)){

    // $("#add_tel_span").hide();                                 //hide()方法对应show()方法     效果同下      
    $("#add_tel_span").css("display","none");              //设置不能为空的样式为隐藏
    $("#add_telnum_span").show();                                 //显示必须为数字
    return;
    }

    ----------------------------------------------------------------------------------------------------------------------------------------------

    注释的作用

    1、 @PathVariable: someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上,
    变量名称不一致,需要在@PathVariable("name")指定uri template中的名称。
    2.@RequestHeader 注解,可以把Request请求header部分的值绑定到方法的参数上。
    3.@CookieValue 可以把Request header中关于cookie的值绑定到方法的参数上。
    4.@RequestParam:常用来处理简单类型的绑定, 该注解有两个属性: value、required; value用来指定要传入值的id名称,required用来指示参数是否必须绑定;
    5.@RequestBody:该注解常用来处理Content-Type,它是通过使用HandlerAdapter 配置的HttpMessageConverters来解析post data body,然后绑定到相应的bean上的。

    6.@Controller       声明controller

    7.

    @Autowired                 //controller中引用Service
    private DeviceService deviceService;

    8.@Service                //声明Service

    9.@javax.annotation.Resource               //Service中引用Mapper

    private DeviceMapper deviceMapper;

    -----------------------------------------------------------------------------------------------------------------------------------------------------

    添加与修改问题                 

    添加与修改不同         修改时必须传id值到后台

    <input type="hidden" id="id" value="${product.id }"/>       //表单中设置隐藏标签      存放id值用来传递

    ----------------------------------------------------------------------------------------------------------------------------------------------------------

    jsp页面判断问题

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@page import="java.security.MessageDigest"%>
    <c:set var="ctx" value="${pageContext.request.contextPath}" />
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>    //声明调用

    <span  style="text-align: right;  float:right;font-size:12px; font-weight:bold;">上次操作时间:<fmt:formatDate value='${device.materialupdatetime }' type='date' pattern='yyyy-MM-dd HH:mm:ss'/></span>    //日期格式化

    <td  align="center">${ma.usedQuantity}<c:if test="${ma.unit!=null and ma.usedQuantity!=0  }">(${ma.unit })</c:if></td>

    //jsp页面判断  符合条件则执行其中的代码

    ------------------------------------------------------------------------------------------------------------------------------------------------------

    Controller中使用@ResponseBody用与返回一个对象,返回return的值到前台

    ----------------------------------------------------------------------------------

     String.trim()

    trim()是去掉首尾空格
     
     
    --------------------------------------------------------------------------------------------------------------------------------------t
    统一编码  客户端传中文用"utf-8",服务器端接收也该使用"utf-8".
    修改配置文件D:apache-tomcat-7.0.59confserver.xml
        <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="utf-8"/>
     
    ------------------------------------------------------------------------------------------------------------------------------------
    获取到String类型日期加减天数        //例子加一天

    function nextday() {
    var date1 = $("#todaydate").val();         //获取String类型日期
    var date2=new Date(date1);       //转Date类型
    var date="";
    date+=date2.getFullYear()+"-"+(date2.getMonth()+1)+"-"+(date2.getDate()+1);    //转字符串   获取Date类型的年月日拼接字符串   月份从0开始  天数加一
    window.location.href = "${ctx}/appointment/toappointment?date="
    + date;
    }

     ----------------------------------------------------------------------------------------------------------------------------------------

    多对多的关系   表结构   myhabits查询   存在中间表

    例:n+1次查询  不推荐

    <select id="selectUserRole" parameterType="java.lang.String" resultType="sy.model.UserRole">
    SELECT               //select中的id接收方法名       <id column="id" property="id" jdbcType="INTEGER" /> 关联查询表中的唯一标识
    tuser_trole.ID,
    tuser_trole.ROLE_ID,                                   //parameterType   参数类型

    tuser_trole.USER_ID                  //resultType返回值类型自己定义    resultMap返回值类型 可继承
    FROM
    tuser_trole
    where tuser_trole.user_id=#{id,jdbcType=VARCHAR}
    </select>
    <resultMap type="sy.model.User" id="userResultMap" extends="BaseResultMap">
    <collection property="userRoles" column="ID" javaType="list" select="selectUserRole" />       //重写resultMap     存在继承    

    </resultMap>                                    property 里的参数跟model里的对应  映射到具体的属性

                                          column跟别名一样 指定唯一标识用户信息的列
    <select id="getAll" resultMap="userResultMap">                            //collection 标签代表集合  使用ofType 指定映射到集合属性中pojo的类型

                                      //association代表对象  使用javaType   映射到user的哪个属性

    select ID, CREATEDATETIME, MODIFYDATETIME, NAME, PWD from tuser
    </select>

    这个<include refid="Base_Column_List" />refid会自动把上面的代码贴过来。



    ----------------------------------------------------------------------------------------------------------------------------------------------

    列数相同的两个表格行自动匹配宽度

    jQuery(function($) {
    var tab1_width = $("#tab1 tr:first td").length;

    for(i=0;i<tab1_width;i++)
    {
    $("#tab2 tr:first th").eq(i).width($("#tab1 tr:first td").eq(i).width());
    }


    });

    ---------------------------------------------------------------------------------------------------------------------------------------------------------

    sql语句  DISTINCT 去重     下面根据卡id去重 保证出现的卡id唯一   可以查出使用卡项的数量  

    SELECT (SELECT COUNT(DISTINCT cardId) FROM t_customer_consumption_detail WHERE busid=3 AND (SELECT shopid FROM t_customer_consumption WHERE t_customer_consumption.id=
    t_customer_consumption_detail.consumptionId)=#{shopid}
    <if test="start != null" >
    <![CDATA[ and t_customer_consumption_detail.createDatetime >= #{start} ]]>
    </if>
    <if test="end != null" >
    <![CDATA[ and t_customer_consumption_detail.createDatetime <= #{end} ]]>
    </if>
    )opencnt

    FROM t_customer_consumption_detail b
    GROUP BY opencnt

    -------------------------------------------------------------------------------------------------------------------------------------------------------

    java Controller获取当前时间

    1.Date end = new Date();

    2.用于获取时间段,近半年,今年  可以直接设置

    Calendar cal_1 = Calendar.getInstance();// 获取当前日期
    cal_1.add(Calendar.MONTH, 0);
    cal_1.set(Calendar.DAY_OF_MONTH, 1);// 设置为1号,当前日期既为本月第一天
    cal_1.set(Calendar.HOUR, 0);
    cal_1.set(Calendar.SECOND, 0);
    cal_1.set(Calendar.MINUTE, 0);
    Date start = cal_1.getTime();

    //获取时间后记得转时间格式

    SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    String startString = "";
    String endString = "";
    if(start!=null){
    startString = format.format(start);
    try {
    start = format.parse(startString);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    }
    if(end!=null){
    endString = format.format(end);
    try {
    end = format.parse(endString);
    } catch (ParseException e) {
    e.printStackTrace();
    }
    }

     -------------------------------------------------------------------------------------------------------------------------------------------------------

    java后台Controller  String类型的时间比较

    在保证日期格式都一致的情况下,可以使用compareTo()方法:

    //判断时间是否过期
    Date nowDate=new Date();
    String nowDatetime = sdf.format(nowDate);
    int result3 = starttime.compareTo(nowDatetime);
    if(result3<=0){
    return "-1";
    }

    结果大于0,表示starttime晚于nowDatetime,等于0则相同,小于0starttime早于nowDatetime

    -----------------------------------------------------------------------------------------------------------------------------------------------

    mybatis一个参数是List集合   用foreach

    List<Integer> busList = new ArrayList<Integer>();
    String[] stringArr = serviceStr.split(";");
    for (int i = 0; i < stringArr.length; i++) {
    busList.add(i);
    }
    if (busList.get(0) == 0) {
    busList = null;
    }
    params.put("busid", busList);

    <select id="newconsumpsByParam" resultMap="BaseResultMap"
    parameterType="map">
    select
    *
    from t_customer_consumption t
    where t.status=1
    AND t.shopid =
    #{shopid}
    <if test="groupid!=null and groupid!='' and groupid!=0">
    <![CDATA[ AND (select t_customer_group.id from t_customer_group where id =
    (select groupid from t_customer_info where t_customer_info.id = t.customerId)) = #{groupid} ]]>
    </if>
    <if test="enddate!=null and enddate!=''">
    <![CDATA[ AND (date_format(t.createdatetime,'%Y-%m-%d')) <= #{enddate}]]>
    </if>
    <if test="startdate!=null and startdate!=''">
    <![CDATA[ AND (date_format(t.createdatetime,'%Y-%m-%d')) >= #{startdate}]]>
    </if>
    </select>

    <select id="superSearchByParams" resultMap="BaseResultMap"
    parameterType="map">
    select
    *
    from t_customer_consumption t
    where t.status=1
    <if test="shopid!=null and shopid!='' and shopid!=0 ">
    <![CDATA[ AND t.shopid = #{shopid} ]]>
    </if>
    <if test="customername!=null and customername!=''">
    and t.customername LIKE CONCAT(CONCAT('%',
    #{customername,jdbcType=VARCHAR}),'%')
    </if>
    <if test="orderno!=null and orderno!=''">
    <![CDATA[ AND t.orderno = #{orderno} ]]>
    </if>
    <if test="status!=null and status!='' and status!=0 ">
    <![CDATA[ AND t.statisticstatus = #{status} ]]>
    </if>
    <if test="waiterid!=null and waiterid!='' and waiterid!=0 ">
    <![CDATA[ AND t.cashierId = #{waiterid} ]]>
    </if>
    <if test="enddate!=null and enddate!=''">
    <![CDATA[ AND (date_format(t.createdatetime,'%Y-%m-%d')) <= #{enddate}]]>
    </if>
    <if test="startdate!=null and startdate!=''">
    <![CDATA[ AND (date_format(t.createdatetime,'%Y-%m-%d')) >= #{startdate}]]>
    </if>
    <if test="busid!=null and busid.size()>0">
    AND t.id in
    (select consumptionid from t_customer_consumption_detail b where b.busid in <foreach collection="busid" item="item" index="index"
    open="(" separator="," close=")">#{item}</foreach>)
    </if>
    </select>

    -------------------------------------------------------------------------------------------------------------------------------------------------

    提成规则计算    工资收税方式

    //根据规则计算提成        achievement 业绩总和
    public BigDecimal calculateCommission(CommissionClass c,BigDecimal achievement){
    BigDecimal commission = new BigDecimal(0);
    //业绩为负,提成为0
    if(achievement.doubleValue()<0){
    return new BigDecimal(0);
    }
    //升序排列的规则集合
    List<CommissionRule> rules = commissionRuleMapper.findByClassId(c.getId());
    for(int i=0;i<rules.size();i++){
    //大于当前规则临界值
    if(rules.get(i).getBreakvalue().doubleValue()<achievement.doubleValue()){
    //下一级提成规则存在且大于该临界值
    if((i+1)<rules.size()&&achievement.doubleValue()>rules.get(i+1).getBreakvalue().doubleValue()){
    Double d = rules.get(i+1).getBreakvalue().doubleValue() - rules.get(i).getBreakvalue().doubleValue();
    d = d * rules.get(i).getPercentage().doubleValue()/100;
    BigDecimal b = new BigDecimal(d);
    d = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留两位小数
    commission = new BigDecimal(commission.doubleValue()+d);
    }
    //下一级提成规则存在且小于该临界值
    else if((i+1)<rules.size()&&achievement.doubleValue()<=rules.get(i+1).getBreakvalue().doubleValue()){
    Double d = achievement.doubleValue() - rules.get(i).getBreakvalue().doubleValue();
    d = d * rules.get(i).getPercentage().doubleValue()/100;
    BigDecimal b = new BigDecimal(d);
    d = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留两位小数
    commission = new BigDecimal(commission.doubleValue()+d);
    }
    //下一级提成规则不存在
    else if((i+1)>=rules.size()){
    Double d = achievement.doubleValue() - rules.get(i).getBreakvalue().doubleValue();
    d = d * rules.get(i).getPercentage().doubleValue()/100;
    BigDecimal b = new BigDecimal(d);
    d = b.setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue();//保留两位小数
    commission = new BigDecimal(commission.doubleValue()+d);
    }
    }
    }
    return commission;
    }

    -----------------------------------------------------------------------------------------------------------------------------------------------

    //后台返回json字符串

    function select_bigprojecttypeid(obj) {
    try {
    var id = $(obj).val();
    //var unitachievement = $(obj).parent().parent().find('.unitachievement');
    var unitprice = $(obj).parent().parent().find('.unitprice');
    if (id != 0) {
    $.ajax({
    url : '${ctx}/card/selectByBigProjecttypeId',
    type : 'post',
    cache : false,
    async : false,
    data : {
    id : id
    },
    error : function() {
    alertMsg.warn('请按照提示正确填写!');
    },
    success : function(data) {
    var data = jQuery.parseJSON(data);          //转格式  要解析的 JSON 字符串 
    //unitachievement.val(data.achievement);
    unitprice.val(data.price);
    }
    });
    }
    } catch (e) {
    console.error("我次哦,有异常了~", e);
    }
    }

    @RequestMapping(value = { "/selectByBigProjecttypeId" }, method = RequestMethod.POST)
    @ResponseBody   //返回必须要的注解
    public String selectByBigProjecttypeId(HttpServletRequest request,
    @RequestParam(value = "id") Integer id)
    throws JsonProcessingException {
    Object objshopid = request.getSession().getAttribute("shopid");
    Integer shopid = (Integer) objshopid;
    BigProject project = null;
    try {
    project = itemService.findBigProjectByParams(id, shopid);
    } catch (Exception ex) {
    return null;
    }
    ObjectMapper mapper = new ObjectMapper();          //objectmapper json转对象
    String json = mapper.writeValueAsString(project);
    return json;    //返回json字符串
    }

    -------------------------------------------------------------------------------------------------------------------------------------------

    equals和==

    java中的数据类型,可分为两类: 
    1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
    他们之间的比较,应用双等号(==),比较的是他们的值。
    2.复合数据类型(类)
    当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否则比较后结果为false。 JAVA当中所有的类都是继承于Object这个基类的,在Object中的基类中定义了一个equals的方法,这个方法的初始行为是比较对象的内存地 址,但在一些类库当中这个方法被覆盖掉了,如String,Integer,Date在这些类当中equals有其自身的实现,而不再是比较类在堆内存中的存放地址了。
    对于复合数据类型之间进行equals比较,在没有覆写equals方法的情况下,他们之间的比较还是基于他们在内存中的存放位置的地址值的,因为Object的equals方法也是用双等号(==)进行比较的,所以比较后的结果跟双等号(==)的结果相同。

    int类型比较相等可以用==  基本数据类型只能用==   

    integer包装类一般不使用==  以后碰到Integer比较值是否相等需要用equals  如果integer一定要用==比较的话   数值后面加intValue()方法也可

     -------------------------------------------------------------------------------------------------------------------------------------------------

    mysql  mybatis  返回生日提醒天数

    SELECT * FROM
    (SELECT DATEDIFF (current_birthady ,CURRENT_DATE()) AS diffDays,customerName FROM
    (
    SELECT *, STR_TO_DATE( CONCAT(YEAR( CURRENT_DATE () ) ,'-',MONTH(birthday),'-',DAY(birthday)), '%Y-%m-%d ') AS current_birthady
    FROM t_customer_info
    WHERE DATEDIFF(DATE_ADD(CONCAT(DATE_FORMAT(birthday,"%Y"),DATE_FORMAT(CURDATE(),"%m%d")),INTERVAL 7 DAY),birthday)
    BETWEEN 0 AND 7 OR DATEDIFF(DATE_ADD(CONCAT(DATE_FORMAT(birthday,"%Y"),DATE_FORMAT(CURDATE(),"%m%d")),INTERVAL 7 DAY),birthday)>=365
    ) t
    WHERE shopId=#{shopid}
    ) t ORDER BY diffDays

    ----------------------------------------------------------------------------------------------------------------------------------------------------

    mysql  查询和时间有关

    SELECT paramvalue AS LevelName, paramkey LEVEL ,
    IFNULL(day60,0 ) day60,
    IFNULL(day30, 0 ) day30,
    IFNULL(day90,0 ) day90,
    IFNULL(dayhalfyear, 0 ) dayhalfyear,
    IFNULL(dayyear ,0) dayyear FROM
    (SELECT paramvalue ,paramkey FROM t_sys_data_dictionary WHERE typeid =
    (SELECT id FROM t_sys_data_type WHERE typecode = 'accident_grade')
    ) a
    LEFT JOIN
    (SELECT eventLevel ,
    SUM( CASE WHEN
    TIMESTAMPDIFF(DAY,happenDatetime,CURRENT_DATE()) &lt;31 THEN 1
    ELSE 0
    END) day30,
    SUM( CASE WHEN
    TIMESTAMPDIFF(DAY,happenDatetime,CURRENT_DATE()) &lt;61 THEN 1
    ELSE 0
    END) day60,
    SUM( CASE WHEN
    TIMESTAMPDIFF(DAY,happenDatetime,CURRENT_DATE()) &lt;91 THEN 1
    ELSE 0
    END) day90,   //返回天数  当前日期-happenDatetime小于91    即90天内
    SUM( CASE WHEN
    TIMESTAMPDIFF(MONTH,happenDatetime,CURRENT_DATE()) &lt;7
    THEN 1 ELSE 0
    END) dayhalfyear,  //返回月数  当前日期-happenDatetime小于7    即半年(六个月)内
    SUM( CASE WHEN
    TIMESTAMPDIFF(YEAR,happenDatetime,CURRENT_DATE()) &lt;2 THEN
    1 ELSE 0
    END) dayyear

    FROM t_he_research_info
    GROUP BY eventLevel ) b
    ON
    a.paramkey = b.eventLevel
    ORDER BY paramkey

    -----------------------------------------------------------------------------------------------------------------------------------------------

    mybatis自增主键返回

    例1:<insert id="insertSelectiveWithReturnId" useGeneratedKeys="true" keyProperty="id" parameterType="com.mybatis.model.customer.CustomerPackageCard" >

    insert into t_customer_package_card (id, customerId, cardName,
    price, memo, status,
    createdatetime, cardNo, cardTypeId,
    isreapply)
    values (#{id,jdbcType=INTEGER}, #{customerid,jdbcType=INTEGER}, #{cardname,jdbcType=VARCHAR},
    #{price,jdbcType=DECIMAL}, #{memo,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
    #{createdatetime,jdbcType=TIMESTAMP}, #{cardno,jdbcType=VARCHAR}, #{cardtypeid,jdbcType=INTEGER},
    #{isreapply,jdbcType=INTEGER})

    </insert>

    例2:

    <insert id="insert" parameterType="com.mybatis.model.customer.CustomerPackageCard" >

    <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">   //order:相对于insert来说他的执行顺序
    select LAST_INSERT_ID()
    </selectKey>

    insert into t_customer_package_card (id, customerId, cardName,
    price, memo, status,
    createdatetime, cardNo, cardTypeId,
    isreapply)
    values (#{id,jdbcType=INTEGER}, #{customerid,jdbcType=INTEGER}, #{cardname,jdbcType=VARCHAR},
    #{price,jdbcType=DECIMAL}, #{memo,jdbcType=VARCHAR}, #{status,jdbcType=INTEGER},
    #{createdatetime,jdbcType=TIMESTAMP}, #{cardno,jdbcType=VARCHAR}, #{cardtypeid,jdbcType=INTEGER},
    #{isreapply,jdbcType=INTEGER})
    </insert>

    ---------------------------------------------------------------------------------------------------------------------------------

     form里的button触发了submit,form里没有action属性时,请求无效,也有返回值

    当项目从服务器上下架时,上传的文件全部会消失!!!

     -------------------------------------------------------------------------------------------------------------------------------------------------------
    后台接收json串

    @RequestMapping("/updateResearchInfo")
    @ResponseBody
    public String updateResearchInfo(String str, HttpServletRequest request,HttpSession session)
    throws JsonParseException, JsonMappingException, IOException {
    ObjectMapper mapper = new ObjectMapper();
    HeResearchInfo info = mapper.readValue(str, HeResearchInfo.class);
    researchService.updateResearchInfo(info);
    User user =(User) session.getAttribute("user");
    logService.writeLog(user,7,"修改人为差错成功");
    return "ok";
    }

    ----------------------------------------------------------------------------------------------------------------------------------------

    表单序列化 data:$('#addVersion-form').serialize(),// 你的formid

    获取到的是name的值

    传递json串   就是str:str

    传递json对象   就是把contenttype定义为json

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------

    input 文本框 只能输入数字

    <td>数量:</td>
    <td>
    <input type="text" style="150px;" class="ipt form-control" id="quantity" onkeyup="this.value=this.value.replace(/[^d]/g,'') " onafterpaste="this.value=this.value.replace(/[^d]/g,'') "/>   //正则非数字自动置为空

    -----------------------------------------------------------------------------------------------------------------------------------------------

    &和&&的区别

    &和&&都是逻辑运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止。如&&例子中的i++>5被执行了,而i++<9并没有被执行,这就是他们的差别。&例子中的i++>5和i++<9都被执行了。


    </td>

    --------------------------------------------------------------------------------------------------------------------------------------------

    全选,反选以及返回已选复选框的个数与总数

    <div class="form-group"  >
                      <label  class="col-sm-2 control-label">预备党员<span class="text-danger">*</span></label>
                      <div class="col-sm-10">
                        <input type="checkbox"   name="selectall">全选<label id="appendtext">,已选择0人,共3人</label>
                      </div>
                    </div>
                    
                    <div class="form-group"  >
                     <label  class="col-sm-2 control-label"></label>
                      <div class="col-sm-10">
                        <input type="checkbox"   name="member" value="2">1
                          <input type="checkbox"   name="member" value="2">2
                            <input type="checkbox"   name="member" value="2">3
                      </div>
                    </div>

    js部分

    $(function(){
     $("input[name='selectall']").change(function(){//判断全选框的改变
      var all= 0;   //总数
      var select = 0;//选中
         var flage =$(this).is(":checked");//全选选中为true,否则为false
         $("input[name='member']").each(function(){
            $(this).prop("checked",flage);
             all+=1;
             if($(this).is(":checked")){
             select+=1;   //选中加1
             }
         });
         $("#appendtext").html("");
         $("#appendtext").append(",已选择"+select+"人,共"+all+"人");
     });
     
      $("input[name='member']").change(function(){//判断每一个复选框的改变
      var all= 0;   //总数
      var select = 0;//选中
         $("input[name='member']").each(function(){
             all+=1;
             if($(this).is(":checked")){
             select+=1;   //选中加1
             }
         });
         $("#appendtext").html("");
         $("#appendtext").append(",已选择"+select+"人,共"+all+"人");
     });
    });

    -------------------------------------------------------------------------------------------------------------------------------------------

    静态方法是类方法,不需要去实例化类就可以调用这个方法,静态方法内部使用的是静态变量,这些就相当于全局变量,有类就有方法。它可以不创建类的实例而被调用。
    但是静态方法是要占用内存的,而且如果全都是静态方法,那么你的类也确实没什么必要了。
    -----------------------------------------------------------------------------------------------------------------------------------------------
    正则表达式两大类
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    方式一:
    Pattern p=Pattern.compile("\d+"); 
    Matcher m=p.matcher("22bb23"); 
    m.matches();//返回false,因为bb不能被d+匹配,导致整个字符串匹配未成功. 
    Matcher m2=p.matcher("2223"); 
    m2.matches();//返回true,因为d+匹配到了整个字符串 
    方式二:调用静态方法
    Pattern.matches("\d+","2223");//返回true 
    Pattern.matches("\d+","2223aa");//返回false,需要匹配到所有字符串才能返回true,这里aa不能匹配到 

    -----------------------------------------------------------------------------------------------------------------------

    HttpServletRequest cannot be resolved to a type。

     
    问题描述:
    HttpServletRequest cannot be resolved to a type。
    Multiple markers at this line
    - The import javax.servlet.http cannot be resolved
    - The import javax.servlet.http cannot be resolved
    - The import javax.servlet.http cannot be resolved
    解决方案:
    1.这个错误可能是服务器自带的servlet库未导入的原因。
    2.右键项目属性,转到Targeted Runtimes,选择一个服务器,例如Tomcat,单击应用,可能就可以解决。


    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    win10系统ping另一台电脑上虚拟机的IP
    -bash: locate: command not found
    oracle 数据库 主键索引重建
    SSM整合记录
    IE11安装需要获取更新-安装失败
    Unicode与中文的转换-javascript
    Unicode与中文的转换-java
    正则表达式--学习
    一段过滤HTML标签的代码
    出现$(#form).validate is not a function的问题 (就是validate验证不了)
  • 原文地址:https://www.cnblogs.com/1234cjq/p/5748792.html
Copyright © 2020-2023  润新知