java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller相关的知识,希望对你有一定的参考价值。

一, 从controller往视图传递值,controller---->视图
 
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

参考技术A 放到请求参数里面,在controller使用实体类去接收,springmvc自己会将你给的参数转换为你要得到的实体
所以,对于一个类型作为参数,想在controller中让这个类型有要的值,只需要jsp有name="你想差传递的属性"和对应的值,在controller中使用相应的有该属性的类做对应的接受即可
参考技术B 这个主要是用js获取枚举类型的值,通过请求将参数发送过去,然后在controller里面通过
String para = request.getParameter("参数名字"); 获得。
如果有不懂的话我可以给你写一段代码。欢迎提问

C语言怎样取得枚举型的名字 而不是值

在C语言中,枚举类型是被当做int或者unsigned int类型来处理的,所以按照C语言规范是没有办法遍历枚举类型的。
不过在一些特殊的情况下,可以实现有条件的遍历。
1 枚举类型必须连续。
由于枚举类型支持如下方式定义:
enum

ENUM_0,

ENUM_10 = 10,

ENUM_11

;
这样就会导致枚举类型不连续,这种枚举无法遍历。

2 枚举类型中人为加入起始及结束标记。
enum

ENUM_START,

ENUM_0,

ENUM_1,

ENUM_2,

ENUM_END

;
可以看到,在这个枚举类型中,人为加入可ENUM_START, 和ENUM_END。中间的ENUM_0,ENUM_1,ENUM_2才是实际的有效数据。当后续需要增删枚举元素时,也要保证ENUM_START, 和ENUM_END分别为最小和最大值。

满足以上两种条件下,就可以做枚举的遍历了,参考代码如下:
int i;
for(i = ENUM_START+1; i<ENUM_END; i ++)

//使用枚举元素。


这个循环中,i的值就是所有有效的枚举元素值。
参考技术A typedef enum ONE,TWO,THREE num;
枚举变量名字 ONE TWO THREE ? 在编译器里也没有这个标识符吧,不能直接获取的。
实在要可以自己转换:

num aa = TWO;
char eName[10];
if(aa == TWO)
strcpy(eName,"TWO");本回答被提问者采纳
参考技术B 你不知道这变量是什么,那这变量有什么用?

以上是关于java springmvc 页面枚举类型作为怎样查询条件并传递参数到controller的主要内容,如果未能解决你的问题,请参考以下文章

c#中怎样定义枚举?

java中枚举常量的命名规范是怎样的

在java中如何将emun枚举类型作为参数传入函数中?

java枚举用中文作为对象名

java怎么声明枚举类型

C语言怎样取得枚举型的名字 而不是值