Strus2 @JSON(serialize=false),过滤不需要的变量

在用struts2 的Action 加@ParentPackage("json-default")注解 or struts.xml 配置文件中 Action所在的package 继承  json-default,Action中方法返回json类型的数据时,在没有任何设定的情况下,改类下的所有getter方法的返回值将被包含在返回给客户端的JSON字符串中。需要剔除不需要包含的属性,在类结构结构中需要在getter方法上使用@JSON(serialize=false)进行注解,当然在不影响其他业务的时候也可以直接去掉这个getter方法。所以本例中的返回结果是将dataMap对象转换成的JSON格式的字符串
(serialize=false)。由于当时没注意这特特点,出现以下bug,先列出出现问题的代码。
NavigationUrlAction 类
package com.swdt.manage.action;
import java.util.Date;
import java.util.List;

import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.stereotype.Controller;
import com.swdt.manage.service.NavigationUrlService;
import com.swdt.sys.action.BaseAction;
import com.swdt.web.entity.enumtype.EnumYesOrNo;
import com.swdt.web.entity.navigation.NavigationUrl;
/**
 * 导航推荐文字
 * 
 * @ClassName: NavigationUrlAction
 * @Description: TODO
 * @author liugenxiang
 * 
 */
@Controller
@ParentPackage("json-default")
public class NavigationUrlAction extends BaseAction {
@Resource(name = NavigationUrlService.ID_NAME)
private NavigationUrlService navigationUrlService; 
private String message;

private List
    
    
     
      navUrlList;
private NavigationUrl _navUrl;

@Action(value = "/manage/control/toNavigationUrlPage", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url.jsp") })
public String toNavigationUrlPage(){
return SUCCESS;
}

@Action(value = "/manage/control/navigationUrlList", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String navigationUrlList() {
navUrlList = navigationUrlService.findList(null,super.getReqPages());
return SUCCESS;
}

@Action(value = "/manage/control/toNavigationUrl", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url_add.jsp") })
public String toNavigationUrl() {
Long navId = super.getLongParamter("id", 0);
if(navId>0){
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}
return SUCCESS;
}

@Action(value = "/manage/control/saveNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String saveNavigationUrl() {
Long navId = super.getLongParamter("id", 0);
int status = super.getIntParamter("status", 0);
String navTitle = super.getStr("navTitle", null);
String navUrl= super.getStr("navUrl", null);
String descrpition = super.getStr("descrpition", null);
int orderNum = super.getIntParamter("orderNum", 0);
if (navId > 0) {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}else{
if(_navUrl==null){
_navUrl = new NavigationUrl();
}
}
_navUrl.setNavTitle(navTitle);
_navUrl.setNavUrl(navUrl);
_navUrl.setDescription(descrpition);
_navUrl.setOrderNum(orderNum);
if (status == 0) {
_navUrl.setStatus(EnumYesOrNo.NO);
} else {
_navUrl.setStatus(EnumYesOrNo.YES);
}
if(navId>0){
navigationUrlService.update(_navUrl);
}else{
_navUrl.setCreateDate(new Date());
navigationUrlService.create(_navUrl);
}
message = "Success";
return SUCCESS;
}

@Action(value = "/manage/control/deleteNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String deleteNavigationUrl() {
Long navId = super.getLongParamter("id", 0);
try {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
navigationUrlService.delete(NavigationUrl.class,_navUrl.getId());
message = "Success";
} catch (Exception ex) {
ex.printStackTrace();
message = "Delete failed!";
}
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List
     
     
      
       getNavUrlList() {
return navUrlList;
}
public void setNavUrlList(List
      
      
       
        navUrlList) {
this.navUrlList = navUrlList;
}
public NavigationUrl get_navUrl() {
return _navUrl;
}
public void set_navUrl(NavigationUrl _navUrl) {
this._navUrl = _navUrl;
}
public NavigationUrlService getNavigationUrlService() {
return navigationUrlService;
}
public void setNavigationUrlService(NavigationUrlService navigationUrlService) {
this.navigationUrlService = navigationUrlService;
}
}
      
      
     
     
    
    
navigation_url.jsp

<%@page import="com.swdt.web.entity.enumtype.EnumUserRole"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/include/tags.jsp"%>
<%@ include file="/include/head.jsp"%>

     
     

     
     
<%@ include file="/include/menu.jsp"%>
<%@ include file="/include/page_header.jsp"%>
TitleNavigation UrlDate of recommendStatusSortNumEdit
<script type="text/javascript"> //$("#navigation").hide(); myTable = $('#myTable').dataTable({ "bServerSide": true, "sAjaxSource": "${cxp}/manage/control/navigationUrlList.do", //mvc后台ajax调用接口。 "sServerMethod": "POST", 'bPaginate': true, //是否分页。 "bProcessing": true, //当datatable获取数据时候是否显示正在处理提示信息。 'bFilter': false, //是否使用内置的过滤功能。 'bLengthChange': true, //是否允许用户自定义每页显示条数。 'sPaginationType': 'full_numbers', //分页样式 "sDom": '<"top"f>rt<"bottom"flip><"clear">', "order": [[4, "asc"]], "fnDrawCallback": function (oSettings, json) { tb_init('a.edit'); }, "sAjaxDataProp":"navUrlList", "aoColumns": [ { "mData": "navTitle","bSortable": false}, { "mData": "navUrl","bSortable": false}, { "mData": "createDate","mRender":datetimeRender}, { "mData": "status","bSortable": false, "mRender":function(data,type,full){ if(data=="1"||data=="YES"){ return "Y"; } return "N"; } }, { "mData": "orderNum","mRender":strDefRender}, { "mData": "id","bSortable": false, "mRender":function(data,type,full){ return " Edit   Delete"; } }] }); function strDefRender(data,type,full){ if(data==null){ return " "; } return data; } function datetimeRender(data,type,full){ if(data==null){ return " "; } return data.replace("T"," "); } function refresh(){ myTable.fnDraw(); tb_remove(); } function del(id){ if(confirm("Confirm delete?")){ $.ajax({ type: "POST", url: "deleteNavigationUrl.do", data: {id:id}, dataType: "json", success: function(data){ alert(data.message); if(data.message.indexOf("Success")>-1){ myTable.fnDraw(); } } }); } } </script>
<%@ include file="/include/foot.jsp"%>
出现的bug
15:33:02,199 ERROR Dispatcher:38 - Exception occurred during processing request: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246)
at org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134)
at org.apache.struts2.json.JSONWriter.write(JSONWriter.java:102)
at org.apache.struts2.json.JSONUtil.serialize(JSONUtil.java:116)
at org.apache.struts2.json.JSONResult.createJSONString(JSONResult.java:197)
at org.apache.struts2.json.JSONResult.execute(JSONResult.java:171)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:161)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:563)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at com.swdt.web.filter.LoginFilter.doFilter(LoginFilter.java:48)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:177)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:528)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1099)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:670)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1520)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1476)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246)
at org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134)
at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:390)
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:231)
... 80 more
Caused by: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:246)
at org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178)
at org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168)
at org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134)
at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:390)
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:231)
... 85 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:226)
... 90 more
Caused by: java.lang.IllegalStateException: It is illegal to call this method if the current request is not in asynchronous mode (i.e. isAsyncStarted() returns false)
at org.apache.catalina.connector.Request.getAsyncContext(Request.java:1686)
... 95 more

解决办法是在service getter方法加@JSON(serialize=false)注解,或者service才有Spring注解不提供getter 和setter方法
package com.swdt.manage.action;


import java.util.Date;
import java.util.List;

import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.json.annotations.JSON;
import org.springframework.stereotype.Controller;
import com.swdt.manage.service.NavigationUrlService;
import com.swdt.sys.action.BaseAction;
import com.swdt.web.entity.enumtype.EnumYesOrNo;
import com.swdt.web.entity.navigation.NavigationUrl;

/**
 * 导航推荐文字
 * 
 * @ClassName: NavigationUrlAction
 * @Description: TODO
 * @author liugenxiang
 * 
 */
@Controller
@ParentPackage("json-default")
public class NavigationUrlAction extends BaseAction {
/*@Resource(name = NavigationUrlService.ID_NAME)*/
private NavigationUrlService navigationUrlService; 
private String message;

private List
    
    
     
      navUrlList;
private NavigationUrl _navUrl;

@Action(value = "/manage/control/toNavigationUrlPage", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url.jsp") })
public String toNavigationUrlPage(){
return SUCCESS;
}

@Action(value = "/manage/control/navigationUrlList", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String navigationUrlList() {
navUrlList = navigationUrlService.findList(null,super.getReqPages());
return SUCCESS;
}

@Action(value = "/manage/control/toNavigationUrl", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url_add.jsp") })
public String toNavigationUrl() {
Long navId = super.getLongParamter("id", 0);
if(navId>0){
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}
return SUCCESS;
}

@Action(value = "/manage/control/saveNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String saveNavigationUrl() {

Long navId = super.getLongParamter("id", 0);
int status = super.getIntParamter("status", 0);
String navTitle = super.getStr("navTitle", null);
String navUrl= super.getStr("navUrl", null);
String descrpition = super.getStr("descrpition", null);
int orderNum = super.getIntParamter("orderNum", 0);

if (navId > 0) {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}else{
if(_navUrl==null){
_navUrl = new NavigationUrl();
}
}
_navUrl.setNavTitle(navTitle);
_navUrl.setNavUrl(navUrl);
_navUrl.setDescription(descrpition);
_navUrl.setOrderNum(orderNum);
if (status == 0) {
_navUrl.setStatus(EnumYesOrNo.NO);
} else {
_navUrl.setStatus(EnumYesOrNo.YES);
}
if(navId>0){
navigationUrlService.update(_navUrl);
}else{
_navUrl.setCreateDate(new Date());
navigationUrlService.create(_navUrl);
}
message = "Success";
return SUCCESS;
}

@Action(value = "/manage/control/deleteNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String deleteNavigationUrl() {

Long navId = super.getLongParamter("id", 0);
try {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
navigationUrlService.delete(NavigationUrl.class,_navUrl.getId());
message = "Success";
} catch (Exception ex) {
ex.printStackTrace();
message = "Delete failed!";
}
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List
     
     
      
       getNavUrlList() {
return navUrlList;
}
public void setNavUrlList(List
      
      
       
        navUrlList) {
this.navUrlList = navUrlList;
}
public NavigationUrl get_navUrl() {
return _navUrl;
}
public void set_navUrl(NavigationUrl _navUrl) {
this._navUrl = _navUrl;
}
@JSON(serialize=false)
public NavigationUrlService getNavigationUrlService() {
return navigationUrlService;
}
public void setNavigationUrlService(NavigationUrlService navigationUrlService) {
this.navigationUrlService = navigationUrlService;
}
}

      
      
     
     
    
    
或者

package com.swdt.manage.action;

import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.stereotype.Controller;
import com.swdt.manage.service.NavigationUrlService;
import com.swdt.sys.action.BaseAction;
import com.swdt.web.entity.enumtype.EnumYesOrNo;
import com.swdt.web.entity.navigation.NavigationUrl;

/**
 * 导航推荐文字
 * 
 * @ClassName: NavigationUrlAction
 * @Description: TODO
 * @author liugenxiang
 * 
 */
@Controller
@ParentPackage("json-default")
public class NavigationUrlAction3 extends BaseAction {
@Resource(name = NavigationUrlService.ID_NAME)
private NavigationUrlService navigationUrlService; 
private String message;

private List
    
    
     
      navUrlList;
private NavigationUrl _navUrl;

@Action(value = "/manage/control/toNavigationUrlPage", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url.jsp") })
public String toNavigationUrlPage(){
return SUCCESS;
}

@Action(value = "/manage/control/navigationUrlList", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String navigationUrlList() {
navUrlList = navigationUrlService.findList(null,super.getReqPages());
return SUCCESS;
}

@Action(value = "/manage/control/toNavigationUrl", results = {
@Result(name = SUCCESS, location = "/manage/control/navigation_url_add.jsp") })
public String toNavigationUrl() {
Long navId = super.getLongParamter("id", 0);
if(navId>0){
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}
return SUCCESS;
}

@Action(value = "/manage/control/saveNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String saveNavigationUrl() {


Long navId = super.getLongParamter("id", 0);
int status = super.getIntParamter("status", 0);
String navTitle = super.getStr("navTitle", null);
String navUrl= super.getStr("navUrl", null);
String descrpition = super.getStr("descrpition", null);
int orderNum = super.getIntParamter("orderNum", 0);


if (navId > 0) {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
}else{
if(_navUrl==null){
_navUrl = new NavigationUrl();
}
}
_navUrl.setNavTitle(navTitle);
_navUrl.setNavUrl(navUrl);
_navUrl.setDescription(descrpition);
_navUrl.setOrderNum(orderNum);
if (status == 0) {
_navUrl.setStatus(EnumYesOrNo.NO);
} else {
_navUrl.setStatus(EnumYesOrNo.YES);
}
if(navId>0){
navigationUrlService.update(_navUrl);
}else{
_navUrl.setCreateDate(new Date());
navigationUrlService.create(_navUrl);
}
message = "Success";
return SUCCESS;
}

@Action(value = "/manage/control/deleteNavigationUrl", results = {
@Result(name = SUCCESS, type = "json", params = { "ignoreHierarchy", "false" }) })
public String deleteNavigationUrl() {


Long navId = super.getLongParamter("id", 0);
try {
_navUrl = navigationUrlService.find(NavigationUrl.class, navId);
navigationUrlService.delete(NavigationUrl.class,_navUrl.getId());
message = "Success";
} catch (Exception ex) {
ex.printStackTrace();
message = "Delete failed!";
}
return SUCCESS;
}

public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public List
     
     
      
       getNavUrlList() {
return navUrlList;
}
public void setNavUrlList(List
      
      
       
        navUrlList) {
this.navUrlList = navUrlList;
}
public NavigationUrl get_navUrl() {
return _navUrl;
}

public void set_navUrl(NavigationUrl _navUrl) {
this._navUrl = _navUrl;
}
}
      
      
     
     
    
    

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值