SpringMVC参数传递

SpringMVC参数传递

使用原生的ServletAPI获取(request.getParameter("id"))

页面:

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

       username:<input type="text" name="name"/><br>

       password:<input type="password" name="pwd"/><br>

       username:<input type="submit" value="login"/><br>

    </form>

Controller:

@RequestMapping("login")

    public String login(HttpServletRequest request){

       //取得到前台页面的值?

       System.out.println(request.getParameter("name"));

       System.out.println(request.getParameter("pwd"));

       return "success";

    }

Springmvc的核心配置文件

<!-- 视图解析器 -->

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <!-- 视图显示 -->

    <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"></property>

    <!-- /就代表web的根目录,WebContent -->

    <property name="prefix" value="/"></property>

    <!-- 添加后缀:在每次请求完之后,加一个后缀名 -->

    <property name="suffix" value=".jsp"></property>

</bean>

使用@RequestParam注解取值解耦ServletAPI

@RequestParam 注解用来取得前台页面的值:

Value:是前台页面中input标签 name属性的值。

DefaultValue:默认值!

required=true 页面中的属性必须有值!

@RequestMapping("loginOne")

    public String loginOne(@RequestParam(value="name",defaultValue="amdin",required=true) String names){

        //取得到前台页面的值?

        System.out.println(names);

        return "success";

    }

使用springmvc传值的时候:有一个特殊的地方!

如果前台页面name属性值,跟controller方法中传入的参数名称一致!则不需要写@RequestParam,直接能取得到!

@RequestMapping("loginOne")

    public String loginOne(String name){

       //取得到前台页面的值?

       System.out.println(name);

       return "success";

    }

使用对象传值

当前台页面name属性的值,和实体类中属性名一致时!后台controller,可以直接使用实体类取值!

@RequestMapping("loginTwo")

    public String loginTwo(User user,HttpSession session){

       //取得到前台页面的值?

       System.out.println(user);

       return "success";

    }

注意:如果输入中文的时候,可能会出现中文乱码,则需要添加一个过滤器,则这个过滤器配置如下: 过滤器配置的路径跟springmvc的核心配置文件的路径是有区别!

    <filter>

       <filter-name>filter</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>

    </filter>

    <filter-mapping>

       <filter-name>filter</filter-name>

       <url-pattern>/*</url-pattern>

    </filter-mapping>

使用数组传值

页面:

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

       username:<input type="text" name="name"/><br>

       password:<input type="password" name="pwd"/><br>

       喜欢的游戏:<br>

       <input type="checkbox" name="games" value="lol"/>lol<br>

       <input type="checkbox" name="games" value="王者荣耀"/>王者荣耀<br>

       <input type="checkbox" name="games" value="dota"/>dota<br>

       <input type="checkbox" name="games" value="gyy"/>gyy<br>

       <input type="submit" value="login"/><br>

    </form>

后天:

@RequestMapping("loginThree")

    public String loginThree(User user){

       //取得到前台页面的值?

       System.out.println(user);

       return "success";

    }

 

@RequestMapping("loginFour")

    public String loginFour(String[] games){

       for (String string : games) {

           System.out.println(string);

       }

       return "success";

    }

 

    @RequestMapping("loginFive")

    public String loginFive(@RequestParam(value="games") List<String> games){

       for (String string : games) {

           System.out.println(string);

       }

       return "success";

    }

使用restful风格传值

RESTFUL:风格其实本质就是一个跳转方式!

<body>

    <h1>欢迎来到王者农药,敌军还有五秒到达战场!请做好准备!</h1>

    <a href="user/gyy">TestA</a>

    <a href="user/ty">TestB</a>

    <a href="user/shq">TestC</a>

</body>

@Controller

public class CommonsController {

 

    @RequestMapping("/user/{path}")

    public void show(@PathVariable(value="path") String path){

       System.out.println(path);

      

    }

   

}

如果有精确匹配:则restful风格将会失效!

@RequestMapping("user/gyy")

   public String gyy(){

      System.out.println("我才是真的高圆圆!");

      return "gyy";

   }

Springmvc的页面跳转方式:默认方式相当于转发

request.getRequestDispatcher("index.jsp").forward(request,response);

response.sendRedirect("index.jsp");

需要进行页面渲染!

mv.setViewName("index");

return "redirect:success.jsp";

return "forward:success.jsp";

内容概要:《绿色转型美丽乡村——汾渭平原地区低碳乡村案例集》由西安空气侠环保科技有限公司编写,北京市企业家环保基金会支持,聚焦汾渭平原地区乡村低碳发展的典型实践。报告梳理了国内外相关理论研究及政策背景,展示了中央与地方在低碳乡村发展方面的政策措施。通过五个典型案例,包括芮城县庄上村的“光储直柔”模式、铜川耀州区克坊村的“光伏+普惠金融”、浮山县臣南河村的循环经济模式、澄城县权家河村的“风光储一体化”以及麟游县紫石崖村的“光伏+生态养殖”,详细分析了这些案例的技术路线、项目成效、主要政策、典型经验和存在问题。报告总结了清洁能源在乡村低碳发展中的核心地位,强调了因地制宜发展策略的关键作用,并指出了多重效益综合追求的重要性。 适合人群:从事环保、农业、能源领域研究的专业人士,以及关注乡村低碳发展和可持续发展的政策制定者和社会学者。 使用场景及目标:①为全国其他地区开展乡村能源转型实践提供有益的借鉴;②助力推动我国乡村低碳发展,为实现碳达峰、碳中和目标贡献积极力量;③为政策制定者提供决策参考,促进乡村绿色转型和乡村振兴战略的实施。 其他说明:报告由多家单位参编,感谢北京市企业家环保基金会提供资金支持。文中内容及意见仅代表作者的个人观点,与北京市企业家环保基金会的立场或政策无关。报告期望为全国其他地区开展乡村能源转型实践提供有益的借鉴,助力推动我国乡村低碳发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值