xml地图|网站地图|网站标签 [设为首页] [加入收藏]

.net群讨论笔记

本篇为.net群中学到的繁杂知识点笔记,将不仅立异

一、@RequestMapping的位置

1、加在方法前

2、加在类前

例如:创建 /jsp/school/list.jsp 和 SchoolController.java

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>XXX</title>
</head>
<body>
    <h1>XXXXXX</h1>
</body>
</html>

 

package com.qfedu.springmvc.controller;
@Controller
@RequestMapping("/school")
public class SchoolController {

    @RequestMapping("/list")
    public String list(){

        return "school/list";
    }
}

重启tomcat,程序的拜会路线是:

多谢群内大神,群号(128485855)

二、@RequestMapping的央求格局

1、暗许意况下,管理器可以并且接纳post方式和get方式的乞请

例如:创建/jsp/login.jsp 、/jsp/success.jsp 和 LoginController.java

login.jsp

<h1>登录</h1>
<form action="do_login">
    <p><label for="username">用户名</label><input type="text" name="username" id="username"></p>
    <p><label for="password">密码</label><input type="password" name="password" id="password"></p>
    <p><button>登录</button></p>
</form>

success.jsp

<h1>成功</h1>

LoginController.java

@Controller
public class LoginController {

    @RequestMapping("/login")
    public String login(){

        return "login";
    }

    @RequestMapping("/do_login")
    public String doLogin(){
        return "success";
    }
}

重启tomcat,程序的拜谒路线是:

输入顾客名和密码程序跳转到:

当时表单为默许的get情势发送的伸手 

2、能够将表单的央求方式改为 post

<form action="do_login" method="post">

刷新页面后再也测量检验。

 

3、能够将微型计算机中的表明改良成只选取post央求的办法

@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(){
    return "success";
}

 

测量试验:要是央浼情势和吸收接纳情势不相配,会发生405荒唐

图片 1

4、总结

(1)GET形式:@RequestMapping(value="/do_login", method=RequestMethod.GET)

  • 通过UHighlanderL地址间接待上访谈
  • 或通过a标签的超链接访问

例如:index.jsp中添加

<div><a href="login">登录</a></div>
  • 表单中的 <form method="get">
  • ajax get

 

(2)POST形式:

  • @RequestMapping(value="/do_login", method=RequestMethod.POST)

表单中的 <form method="post">

  • ajax post

(3)注意:

  • 设若不明朗钦点method参数,那么能够接到任何项指标哀告

  • 假定鲜明内定,然则项目不协作,那么会鬼使神差 405 错误

1、关于ULANDL编码难题encodeU大切诺基IComponent

三、管理央浼参数

1、在调控层方法的参数中拍卖央求参数:

  • 参数名和表单中央调节件的name属性保持风度翩翩致
  • 能够收起get和post全部格局的传参
@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(String username, String password){
    System.out.println(username);
    System.out.println(password);
    return "success";
}

 

2、@RequestParam管理央浼参数

地方的例证也足以写成下边包车型地铁方式

public String doLogin(@RequestParam String username, @RequestParam String password){

或(@RequestParam中的暗中同意参数和表单中央调整件的name属性保持豆蔻年华致)

public String doLogin(@RequestParam("username") String username, @RequestParam("password") String password){

 

3、配置可选的参数

在调控层增加一个参数:“验证码 code”,测量检验登陆成效开采400破绽超多

@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(
        @RequestParam("username") String username,
        @RequestParam("password") String password,
        @RequestParam("code") String code){

 

能够安装:required=false,表示参数是可选的,能够传递也得以不传递。私下认可值是true,必得传递

@RequestParam(name = "code", required = false) String code

 

4、配置参数的暗中同意值

defaultValue属性能够布置参数的暗中认可值,当参数未有被定义时,使用默许值

@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(
        @RequestParam("username") String username,
        @RequestParam("password") String password,
        /*@RequestParam(name = "code", required = false) String code*/
        @RequestParam(name = "code", defaultValue = "") String code){
    System.out.println(username);
    System.out.println(password);
    System.out.println("code = " + code);
    return "success";
}

 

5、接收参数时,数值类型的参数应该接收包装类类型

不然当前端的字段可以为空时,会报告类型调换错误(400破绽百出)

举例:login.jsp中增加如下字段

<p><label for="number">数值</label><input type="number" name="number" id="number"></p>

LoginController.jsp中抽取参数是int,测验:当不输入number的时候会爆发400错误

@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(
        @RequestParam("username") String username,
        @RequestParam("password") String password,
        /*@RequestParam(name = "code", required = false) String code*/
        @RequestParam(name = "code", defaultValue = "") String code,
        int number){
    System.out.println(username);
    System.out.println(password);
    System.out.println("code = " + code);
    System.out.println("number = " + number);
    return "success";
}

支配台警告:

警告: Failed to bind request element: org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'int'; nested exception is java.lang.NumberFormatException: For input string: ""

 

将 int 该成 Integer 会清除这些标题

Integer number

 

  图片 2

四、@PathVariable 路线传参

经常url中的参数使用queryString,也能够选取路线传参

(1)修改school/list.jsp

<h1>XXX</h1>

<table>
    <thead>
    <tr>
        <th>XXX</th>
    </tr>
    </thead>
    <tbody>
    <tr>
        <td><a href="view?id=1">XXX</a></td>
    </tr>
    <tr>
        <td><a href="view/1">XXX</a></td>
    </tr>
    </tbody>
</table>

(2)添加school/view.jsp

<h1>XXX</h1>
<h2>XXX</h2>

(3)修改SchoolController.java

@RequestMapping("/view")
public String view1(@RequestParam("id") Integer id){

    System.out.println("id = " + id);
    return "school/view";
}

@RequestMapping("/view/{id}")
public String view2(@PathVariable("id") Integer id){

    System.out.println("id = " + id);
    return "school/view";
}

 

2、c#直接张开本机的excel(包蕴别的种类的公文)  

五、转载和重定向

重定向

@RequestMapping(value="/do_login", method= RequestMethod.POST)
public String doLogin(......){
    ......
    //return "success";
    return "redirect:index";
}

 

    string path = @"E:信息部.doc";
    System.Diagnostics.Process.Start(path);

六、乱码


1、歼灭post乱码难点

web.xml文件

<!-- 字符编码过滤器 : 放在其他过滤器的前面-->
<filter>
    <filter-name>CharacterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>utf-8</param-value>
    </init-param>
    <init-param>
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>CharacterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

 

2、get乱码难点

get 乱码 和 tomcat 版本有关

tomcat7和7以下 须求消除乱码难题

tomcat8不用

 3、关于微信公众号推送音信图片展现难题

  图片 3

4、字符串公式

//字符串公式
var ss="1*2/1+(10*20)";
var val=new DataTable().Compute(ss,"");
Console.WriteLine("{0}={1}",ss,val);

输出: 1*2/1+(10*20)=202

5、C++程序发起Post央求,用webapi来抽出参数的章程

  参谋原著地址:http://www.cnblogs.com/qiywtc/p/4375181.html

  央浼参数要用[FromBody]JObject来接收

 

[HttpPost]
public Response<string> PostTest([FromBody]JObject value)

 

  此中Jobject须要引进using Newtonsoft.Json.Linq;

  值的应用方法得以那样用

var data = value.GetValue("data");

 

2017-12-05

  petapoco使用ExecuteScalar<T>时,假设T是自定义枚举类型,运转时会报错,化解办法是充实意气风发段代码(古金色部分)

  

public T ExecuteScalar<T>(string sql, params object[] args)
        {
            try
            {
                OpenSharedConnection();
                try
                {
                    using (var cmd = CreateCommand(_sharedConnection, sql, args))
                    {
                        object val = cmd.ExecuteScalar();
                        OnExecutedCommand(cmd);
                        var currentType = typeof(T);
                        if (typeof(Enum).IsAssignableFrom(currentType))
                        {
                            return (T)Enum.Parse(currentType, val.ToString());
                        }

                        return (T)Convert.ChangeType(val, typeof(T));
                    }
                }
                finally
                {
                    CloseSharedConnection();
                }
            }
            catch (Exception x)
            {
                OnException(x);
                throw;
            }
        }

 2018-01-08

  IE浏览器ajax缓慰劳题,消除措施:$.ajaxSetup({cache:false})

本文由奥门金沙睹场www462net发布于汽车资讯,转载请注明出处:.net群讨论笔记

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。