
1)简单类型,如int, String,直接写在controller方法的参数里,是无法传递到视图页面上的(经测试)。
(而用@RequestParam("name")注解,可以从视图上,或地址中加?name=***传递到controller方法里)
2)可以用Map<String, Object>,其键值可以在页面上用EL表达式${键值名}得到,
3)也可以用Model类对象来传递,有addAttribute(key, value)方法,其键值可以在页面上用EL表达式${键值名}得到,
如果用addAttribute(value)这个方法,会将类型名的首字母改成小写后,作为键值名传递过去,例如"ok"在页面上用${string}得到,而一个复合类对象,如User类对象,页面上用${user}得到该对象,用${user.propertyName}得到其属性,这是用Model的一大优势。
例如,model.addAttribute(new User("my姓名","我的爱好有游泳打球"))
这样页面上就能用${user.name}和${user.hobby}打印对应属性
@RequestMapping(value={"/","/hello"})
public String hello(int id,Map<String,Object> map) {
System.out.println(id)
System.out.println("hello")
map.put("hello", "world")
return "hello"
}
@RequestMapping(value="/say")
public String say(@RequestParam int id,Model model) {
System.out.println("say")
model.addAttribute("hello", "value")
//使用Object的类型作为key,String-->string
model.addAttribute("ok")
return "hello"
} www.2cto.com
Java语言中的枚举类型的使用方法如下:
用法一:常量;
public enum Color {RED, GREEN, BLANK, YELLOW
}
用法二:switch;
enum Signal {GREEN, YELLOW, RED
}
public class TrafficLight {
Signal color = Signal.RED
public void change() {
switch (color) {
case RED:
color = Signal.GREEN
break
case YELLOW:
color = Signal.RED
break
case GREEN:
color = Signal.YELLOW
break
}
}
}
用法三:向枚举中添加新方法;
public enum Color {RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 普通方法
public static String getName(int index) {
for (Color c : Color.values()) {
if (c.getIndex() == index) {
return c.name
}
}
return null
}
// get set 方法
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public int getIndex() {
return index
}
public void setIndex(int index) {
this.index = index
}
}
用法四:覆盖枚举的方法;
public class Test {public enum Color {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 覆盖方法
@Override
public String toString() {
return this.index + "_" + this.name
}
}
public static void main(String[] args) {
System.out.println(Color.RED.toString())
}
}
用法五:实现接口;
public interface Behaviour {void print()
String getInfo()
}
public enum Color implements Behaviour {
RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4)
// 成员变量
private String name
private int index
// 构造方法
private Color(String name, int index) {
this.name = name
this.index = index
}
// 接口方法
@Override
public String getInfo() {
return this.name
}
// 接口方法
@Override
public void print() {
System.out.println(this.index + ":" + this.name)
}
}
用法六:使用接口组织枚举。
public interface Food {enum Coffee implements Food {
BLACK_COFFEE, DECAF_COFFEE, LATTE, CAPPUCCINO
}
enum Dessert implements Food {
FRUIT, CAKE, GELATO
}
}
以上就是Java语言中枚举类型的基本使用方法。
可以是整型,顺便给你我总结的枚举。1.枚举对象里面的值都必须是唯一的,enum 中不能删除添加元素。
2.元素是公有静态的public static,构造方法只能为private。
2.可以通过 Enum 类名直接引用该常量,如Unit.u1
3.允许程序员为eunm 实例编写方法,如果打算自定义自己的方法,那么必须在enum实例序列的最后添加一个分号。而且 Java 要求必须先定义 enum 实例,否则编译器会报错。
4.可以创建一个enum 类,把它看做一个普通的类(可以有抽象方法)。可以添加其他方法,覆盖它本身的方法。
5.values() 方法是编译器插入到enum 定义中的static 方法,所以,当你将enum 实例向上转型为父类Enum 是,values() 就不可访问了。
6.所有enum都继承java.lang.Enum类。
7.所有枚举类都提供一个静态的values()方法(返回该枚举类所有对象组成的数组),便于遍历所有枚举对象。
for (Unit u: Unit.values()) {
System.out.println(u)}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)