zoukankan      html  css  js  c++  java
  • 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,单击应用,可能就可以解决。


    当能力支撑不了野心时,就该静下心来学习!
  • 相关阅读:
    Oracle SQL语句收集
    SqlParameter In 查询
    SQL 性能优化
    Entity Framework
    【XLL API 函数】 xlfSetName
    【XLL API 函数】xlfUnregister (Form 2)
    【XLL API 函数】xlfUnregister (Form 1)
    【Excel 4.0 函数】REGISTER 的两种形式以及VBA等效语句
    【Excel 4.0 函数】REGISTER
    【Bochs 官方手册翻译】 第一章 Bochs介绍
  • 原文地址:https://www.cnblogs.com/1234cjq/p/5748792.html
Copyright © 2011-2022 走看看