Java web 传参int enum,spring接收从页面传回的enum有关问题

spring接收从页面传回的enum问题

model

Java code@Entity

@Table(name = "tbl_role_header")

public class Role {

private String id;

private String code;

private String name;

private RoleType roleType;

//getter setter

}

public enum RoleType {

/**

* 1.role.

*/

ROLE(1),

/**

* 2.group.

*/

GROUP(2);

private int roleType;

private RoleType(int roleType){

this.setRoleType(roleType);

}

public int getRoleType() {

return roleType;

}

public void setRoleType(int roleType) {

this.roleType = roleType;

}

}

JS页面文件

JScript codefunction saveRole() {

var roleNo = $('#roleNo').val();

var roleType = $('#roleType').val(); //roleType的值为1或2

var roleName = $('#roleName').val();

var roleActive = $('#roleActive').val();

if(roleNo == null || roleName == null) {

$.messager.alert('提示','角色代號和角色名稱不能為空!','info');

return;

}

var active = 0;

if(roleActive == 'on') {

active = 1;

}

var roleDesc = $('#roleDesc').val();

var rows = $('#tblRoles').datagrid('getRows');

var roleMembers = new Array();

for(var i=0; i

var employee = {'employeeId':rows[i].empNo,

'name':rows[i].empName};

var member = {'member':employee,'remark':rows[i].remark};

roleMembers.push(member);

}

var data = {'code':roleNo,'roleType':roleType,'name':roleName, 'active':active,'remark':roleDesc,'roleMembers':roleMembers};

$.ajax({

type:'post',

url:'save_role',

data:JSON.stringify(data),

contentType: "application/json",

success:function(data){

$.messager.alert('提示',data.message,'info');

window.location.href= "list";

},

error:function(data){

$.messager.alert('提示',data.responseText,'info');

}

});

}

controller

Java code@RequestMapping(value="/save_role", method=RequestMethod.POST)

@ResponseBody

public Map addRole(@RequestBody Role role){

Map result = new HashMap();

try {

List rs = testGetRoles();

//List rs = roleService.getAll(Role.class);

for(Role r : rs) {

if(r.getCode().equals(role.getCode())) {

result.put("message", "已存在同樣的角色代號,不可重覆新增!");

return result;

}

}

roleService.save(role);

result.put("message", "操作成功!");

} catch (Exception ex){

ex.printStackTrace();

result.put("message", "操作失败!");

}

return result;

}

-------------------------------------

报错如下:

2012-03-29 09:52:02.102:WARN::/bpm.web/roles/save_role: org.codehaus.jackson.map.JsonMappingException: Can not construct instance of bpm.core.model.org.RoleType from String value '2': value not one of declared Enum instance names| at [Source: org.mortbay.jetty.HttpParser$Input@c8b9ac; line: 1, column: 14] (through reference chain: bpm.core.model.org.Role["roleType"])

问题描述:

一个对象包含一个enum对象,如何将该对象从页面传回controller

不知你们遇到类似的问题没?

------解决方案--------------------

多謝了,這樣就OK了

JScript codevar type = '';

if(roleType == 1)

type = 'ROLE';

else if(roleType == 2)

type = 'GROUP';

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值