java框架之pringmvc04(值传递)

23 篇文章 0 订阅
7 篇文章 0 订阅

项目结构:


1.person.java

package com.dx.pojo;


public class Person {
private String username;
private String password;

public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}

@Override
public String toString() {
return "Person [username=" + username + ", password=" + password + "]";
}


}


2.HelloWorldController.java

package com.dx.controller;


import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.SessionAttributes;
import org.springframework.web.bind.support.SessionStatus;


import com.dx.pojo.Person;


/*
 * 控制器
 */


@Controller
//用注解方式往会话中存储数据
@SessionAttributes({"DxSession","name"})
public class HelloWorldController {

@RequestMapping(value = "/hello")
public String hello(){
return "hello";
}

/*
* 利用作用域HttpServletRequest,HttpServletResponse传值。
*/
@RequestMapping(value = "/test1")
public String test1(HttpServletRequest request,HttpServletResponse response){
String  name="小米";
request.setAttribute("name", name);
return "test";
}

/*
* 利用@RequestParam(value = "")来获取值,其中value的值与参数名相同
*/
@RequestMapping(value = "/test2")
public String test2(@RequestParam(value = "username")String username){
System.out.println(username);
return "test";
}

/*
* 将表单元素直接封装为一个对象,传给后台(对象成员名与表单name要相对应)
*/
@RequestMapping(value = "/test3")
public String test3(Person person){
System.out.println(person);
return "test";
}

/*
* 通过Model将数据传给前台
*/
@RequestMapping(value = "/test4")
public String test4(Person person,Model model){
model.addAttribute("person", person);
return "test";
}

/*
* 通过@ModelAttribute将封装对象传给前台,默认情况下(不指定名时)获取是名是对象类第一个字母小写,如${person}而不是${per}
*/
@RequestMapping(value = "/test5")
public String test5(@ModelAttribute Person per){
return "test";
}

/*
* 通过HttpSession往会话中添加参数
*/
@RequestMapping(value = "/test6")
public String test6(HttpSession session){
session.setAttribute("session1", "session1");
return "test";
}

/*
* 在request作用域中存数据同时,也在session中存储数据
*/
@RequestMapping(value = "/test7")
public String test7(Person per,Model model,SessionStatus status){
model.addAttribute("DxSession",per);
model.addAttribute("name","张三");

//清除当前controller应用到的session。 
status.setComplete();
return "test";
}

/*
* 利用ModelAndView传值,当传值是对象时,key默认为对象类名,首字母小写
* 值为集合时,key默认为集合存储类型+List,同理首字母小写
* 值是String时,key是string,当同时存储多个string时(默认key),后面的值会覆盖前面的值。
*/
@RequestMapping(value = "/test8")
public ModelAndView test8(Person per){
ModelAndView mv = new ModelAndView();
mv.setViewName("test");
mv.addObject("person", per);
mv.addObject("Hello World!");
String[] str = {"武汉","南京"};
mv.addObject(Arrays.asList(str));
return mv;
}

/*
* 通过@ResponseBody将返回值最为文本返回(相当与ajax交互或者servlet中的out.print()函数)
*/
@RequestMapping(value = "/test9")
@ResponseBody
public String test9(){
return "hello world!!欢迎";
}

}


3.index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>index.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">

<!-- css -->
<style type="text/css">
*{margin:0px;padding:0px;}
body{font-family:"微软雅黑";background:#111;}
.box{width:300px;height:200px;margin:180px auto;text-align:center;color:white;}
.txt{outline:none;border:none;text-indent:5px;letter-spacing:2px;height:20px;}
#submit{margin-top:12px;margin-left:35px;width:180px;border:none;
border-radius:5px;cursor:pointer;background:#e2d9d9;transition:1s;}
#submit:hover{background:#888080;transition:1s;color:white}
</style>

<!-- js -->
<script type="text/javascript">
/* 当点击文本框时,文本框旋转 */
function trans(f){
f.style.transform = "rotate("+360+"deg)";
}
</script>

  </head>
  
  <body>
    <div class="box">
    <form action="test7" method="post">
    <p>
    姓名:<input type="text" class="txt" style="transform:rotate(0deg);transition:1s;" name="username" οnclick="trans(this)"/>
    </p>
    <p>
    密码:<input type="password" class="txt" style="transform:rotate(0deg);transition:1s;" name="password" οnclick="trans(this)"/>
    </p>
    <p>
    <input type="submit" value="提交" id="submit"/>
    </p>
    </form>
    </div>
  </body>
</html>


4.test.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
    <title>test.jsp</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
  </head>
  <body>
    ${name }
    <hr>
    ${person }
    <hr>
    从session中获取:${sessionScope.session1 }
    <hr>
    从session中获取:${sessionScope.DxSession }
     从session中获取:${sessionScope.name}
     <hr>
     ${string }
     <hr>
     <!-- jsp标签 -->
     <c:forEach items="${stringList }" var="item">
      ${item },
     </c:forEach>
  </body>
</html>





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值