在jsp中$.ajax({  
 url: "permision!dispatch", 
         type: "post",  
         dataType: "json",     
         data:"menuId="+menuId+"&type="+type+"&id="+e.value,
         error: function(){  
             alert('服务器错误');  
         },      
         success: function(json){  
            alert(json);
         }  
     });  用这样子的一个请求给action,在action中
public String dispatch() throws Exception {
String menuId = getRequest().getParameter("menuId");
String type = getRequest().getParameter("type");
String id = getRequest().getParameter("ID");
if("user".equals(type)) {
type = "crmSystemUser.userId";
}
if("role".equals(type)) {
type = "crmSystemRole.roleId";
}
System.out.println(type);
List<CrmSystemPru> pruList = permisionService.getPermision(id, type, menuId);
for(CrmSystemPru prus : pruList) {
pru = prus;
}
CrmSystemPermision perms = new CrmSystemPermision();
perms = pru.getCrmSystemPermision(); //得到对应的权限信息
 String json = "{name:\"周星星\",sex:\"male\",age:18,job:\"student\"}";
JSONObject jsonObject = JSONObject.fromObject(json);
   System.out.println(jsonObject.get("name"));// 周星星
   System.out.println(jsonObject.get("job"));// student
   System.out.println(jsonObject.getString("sex"));// male
   System.out.println(jsonObject.getInt("age"));// 18
   getOut().println(jsonObject.toString());
return null;
}这是我action处理的代码,意思就是说通过传递过来的参数取得权限信息,但是始终就是会提示服务器错误,把
System.out.println(type);这句话执行后就报错了,我检查了一下问题就是在perms = pru.getCrmSystemPermision(); //得到对应的权限信息这个地方 去掉了就正确了附上代码:
package com.crm.absract;import java.util.HashSet;
import java.util.Set;import com.googlecode.jsonplugin.annotations.JSON;public abstract class AbstractCrmSystemPermision implements
java.io.Serializable { private String permisionId;
private String permisionDescribtion;
private Integer permisionAdd;
private Integer permisionDelete;
private Integer permisionUpdate;
private Integer permisionExport;
private Integer permisionReportform;
private Integer permisionRead;
private Integer perimisionAudit;
private Set crmSystemPrus = new HashSet(0); public AbstractCrmSystemPermision() {
} public AbstractCrmSystemPermision(String permisionId) {
this.permisionId = permisionId;
} public AbstractCrmSystemPermision(String permisionId,
String permisionDescribtion, Integer permisionAdd,
Integer permisionDelete, Integer permisionUpdate,
Integer permisionExport, Integer permisionReportform,
Integer permisionRead, Integer perimisionAudit, Set crmSystemPrus) {
this.permisionId = permisionId;
this.permisionDescribtion = permisionDescribtion;
this.permisionAdd = permisionAdd;
this.permisionDelete = permisionDelete;
this.permisionUpdate = permisionUpdate;
this.permisionExport = permisionExport;
this.permisionReportform = permisionReportform;
this.permisionRead = permisionRead;
this.perimisionAudit = perimisionAudit;
this.crmSystemPrus = crmSystemPrus;
} public String getPermisionId() {
return this.permisionId;
} public void setPermisionId(String permisionId) {
this.permisionId = permisionId;
} public String getPermisionDescribtion() {
return this.permisionDescribtion;
} public void setPermisionDescribtion(String permisionDescribtion) {
this.permisionDescribtion = permisionDescribtion;
} public Integer getPermisionAdd() {
return this.permisionAdd;
} public void setPermisionAdd(Integer permisionAdd) {
this.permisionAdd = permisionAdd;
} public Integer getPermisionDelete() {
return this.permisionDelete;
} public void setPermisionDelete(Integer permisionDelete) {
this.permisionDelete = permisionDelete;
} public Integer getPermisionUpdate() {
return this.permisionUpdate;
} public void setPermisionUpdate(Integer permisionUpdate) {
this.permisionUpdate = permisionUpdate;
} public Integer getPermisionExport() {
return this.permisionExport;
} public void setPermisionExport(Integer permisionExport) {
this.permisionExport = permisionExport;
} public Integer getPermisionReportform() {
return this.permisionReportform;
} public void setPermisionReportform(Integer permisionReportform) {
this.permisionReportform = permisionReportform;
} public Integer getPermisionRead() {
return this.permisionRead;
}

public void setPermisionRead(Integer permisionRead) {
this.permisionRead = permisionRead;
} public Integer getPerimisionAudit() {
return this.perimisionAudit;
} public void setPerimisionAudit(Integer perimisionAudit) {
this.perimisionAudit = perimisionAudit;
}

@JSON(serialize= false)  
public Set getCrmSystemPrus() {
return this.crmSystemPrus;
} public void setCrmSystemPrus(Set crmSystemPrus) {
this.crmSystemPrus = crmSystemPrus;
}}继承的:
package com.crm.entity;import java.util.Set;import com.crm.absract.AbstractCrmSystemPermision;public class CrmSystemPermision extends AbstractCrmSystemPermision implements
java.io.Serializable { private static final long serialVersionUID = 1965992438269335699L; public CrmSystemPermision() {
} public CrmSystemPermision(String permisionId) {
super(permisionId);
} public CrmSystemPermision(String permisionId, String permisionDescribtion,
Integer permisionAdd, Integer permisionDelete,
Integer permisionUpdate, Integer permisionExport,
Integer permisionReportform, Integer permisionRead,
Integer perimisionAudit, Set crmSystemPrus) {
super(permisionId, permisionDescribtion, permisionAdd, permisionDelete,
permisionUpdate, permisionExport, permisionReportform,
permisionRead, perimisionAudit, crmSystemPrus);
}}
另外
package com.crm.absract;import com.crm.entity.CrmSystemMenu;
import com.crm.entity.CrmSystemPermision;
import com.crm.entity.CrmSystemRole;
import com.crm.entity.CrmSystemUser;
import com.googlecode.jsonplugin.annotations.JSON;public abstract class AbstractCrmSystemPru implements java.io.Serializable { // Fields private String priId;
private CrmSystemRole crmSystemRole;
private CrmSystemMenu crmSystemMenu;
private CrmSystemUser crmSystemUser;
private CrmSystemPermision crmSystemPermision;
private Integer priStatus; // Constructors /** default constructor */
public AbstractCrmSystemPru() {
} public AbstractCrmSystemPru(String priId) {
this.priId = priId;
} /** full constructor */
public AbstractCrmSystemPru(String priId, CrmSystemRole crmSystemRole,
CrmSystemMenu crmSystemMenu, CrmSystemUser crmSystemUser,
CrmSystemPermision crmSystemPermision, Integer priStatus) {
this.priId = priId;
this.crmSystemRole = crmSystemRole;
this.crmSystemMenu = crmSystemMenu;
this.crmSystemUser = crmSystemUser;
this.crmSystemPermision = crmSystemPermision;
this.priStatus = priStatus;
} public String getPriId() {
return this.priId;
} public void setPriId(String priId) {
this.priId = priId;
} public CrmSystemRole getCrmSystemRole() {
return this.crmSystemRole;
} public void setCrmSystemRole(CrmSystemRole crmSystemRole) {
this.crmSystemRole = crmSystemRole;
} public CrmSystemMenu getCrmSystemMenu() {
return this.crmSystemMenu;
} public void setCrmSystemMenu(CrmSystemMenu crmSystemMenu) {
this.crmSystemMenu = crmSystemMenu;
} public CrmSystemUser getCrmSystemUser() {
return this.crmSystemUser;
} public void setCrmSystemUser(CrmSystemUser crmSystemUser) {
this.crmSystemUser = crmSystemUser;
}

@JSON (serialize= false )  
public CrmSystemPermision getCrmSystemPermision() {
return this.crmSystemPermision;
} public void setCrmSystemPermision(CrmSystemPermision crmSystemPermision) {
this.crmSystemPermision = crmSystemPermision;
} public Integer getPriStatus() {
return this.priStatus;
} public void setPriStatus(Integer priStatus) {
this.priStatus = priStatus;
}}
其中的@JSON (serialize= false )  这些都是我后来加的 但是依然不正确  我真的没辙了!

解决方案 »

  1.   


    List<CrmSystemPru> pruList = permisionService.getPermision(id, type, menuId);
          for(CrmSystemPru prus : pruList) {
    pru = prus;
    }既然是 一个  List ,则 for 里面有多条数据 ,你不觉得 CrmSystemPermision perms = new CrmSystemPermision();
    perms = pru.getCrmSystemPermision(); //得到对应的权限信息
    String json = "{name:\"周星星\",sex:\"male\",age:18,job:\"student\"}";
    JSONObject jsonObject = JSONObject.fromObject(json);
    System.out.println(jsonObject.get("name"));// 周星星
    System.out.println(jsonObject.get("job"));// student
    System.out.println(jsonObject.getString("sex"));// male
    System.out.println(jsonObject.getInt("age"));// 18
    getOut().println(jsonObject.toString());
    这些需要放在循环之内吗 ?
    ps : 以后发帖的时候 ,还是加上 样式好,这样直接贴代码,很多人都不愿意看   我就看了上面一部分,希望 对你有帮助