zoukankan      html  css  js  c++  java
  • com.opensymphony.xwork2.ognl.OgnlValueStack]

    情况1,查询结果未转换为与前台交互的实体类DTO

    实体类:EmailTypeDto

    package com.manage.email.dto;
    
    public class EmailTypeDto {
    	 private Integer emailTypeId;//邮件类型Id
    	 private String emailTypeNo;//邮件类型编号
    	 private String emailTypeEnName;//邮件类型英文名称
    	 private String emailTypeChName;//邮件类型中文名称
    	 private String remark;//邮件类型备注
    	 private Integer isDel;//是否删除,0表示未删除,1表示已删除
    	 private String preserve01;//预留字段01
    	 private String preserve02;//预留字段01
    	 private String preserve03;//预留字段01
    	 private String preserve04;//预留字段01
    	 private String preserve05;//预留字段01 
    		private Integer currentPage;//分页
    	    private String message;//如果success为FALSE失败信息
    		private Boolean success;//成功
    		//无参构造方法
    		public EmailTypeDto() {
    			super();
    		}
    //构造方法
    	public EmailTypeDto(Integer emailTypeId, String emailTypeNo,
    		String emailTypeEnName, String emailTypeChName, String remark,
    		Integer isDel, String preserve01, String preserve02, String preserve03,
    		String preserve04, String preserve05, Integer currentPage,
    		String message, Boolean success) {
    	super();
    	this.emailTypeId = emailTypeId;
    	this.emailTypeNo = emailTypeNo;
    	this.emailTypeEnName = emailTypeEnName;
    	this.emailTypeChName = emailTypeChName;
    	this.remark = remark;
    	this.isDel = isDel;
    	this.preserve01 = preserve01;
    	this.preserve02 = preserve02;
    	this.preserve03 = preserve03;
    	this.preserve04 = preserve04;
    	this.preserve05 = preserve05;
    	this.currentPage = currentPage;
    	this.message = message;
    	this.success = success;
    }
    	public Integer getCurrentPage() {
    		return currentPage;
    	}
    	public void setCurrentPage(Integer currentPage) {
    		this.currentPage = currentPage;
    	}
    	public String getMessage() {
    		return message;
    	}
    	public void setMessage(String message) {
    		this.message = message;
    	}
    	public Boolean getSuccess() {
    		return success;
    	}
    	public void setSuccess(Boolean success) {
    		this.success = success;
    	}
    	public Integer getEmailTypeId() {
    		return emailTypeId;
    	}
    	public void setEmailTypeId(Integer emailTypeId) {
    		this.emailTypeId = emailTypeId;
    	}
    	public String getEmailTypeEnName() {
    		return emailTypeEnName;
    	}
    	public void setEmailTypeEnName(String emailTypeEnName) {
    		this.emailTypeEnName = emailTypeEnName;
    	}
    	public String getEmailTypeChName() {
    		return emailTypeChName;
    	}
    	public void setEmailTypeChName(String emailTypeChName) {
    		this.emailTypeChName = emailTypeChName;
    	}
    	public String getRemark() {
    		return remark;
    	}
    	public void setRemark(String remark) {
    		this.remark = remark;
    	}
    	public String getEmailTypeNo() {
    		return emailTypeNo;
    	}
    	public void setEmailTypeNo(String emailTypeNo) {
    		this.emailTypeNo = emailTypeNo;
    	}
    	public Integer getIsDel() {
    		return isDel;
    	}
    	public void setIsDel(Integer isDel) {
    		this.isDel = isDel;
    	}
    	public String getPreserve01() {
    		return preserve01;
    	}
    	public void setPreserve01(String preserve01) {
    		this.preserve01 = preserve01;
    	}
    	public String getPreserve02() {
    		return preserve02;
    	}
    	public void setPreserve02(String preserve02) {
    		this.preserve02 = preserve02;
    	}
    	public String getPreserve03() {
    		return preserve03;
    	}
    	public void setPreserve03(String preserve03) {
    		this.preserve03 = preserve03;
    	}
    	public String getPreserve04() {
    		return preserve04;
    	}
    	public void setPreserve04(String preserve04) {
    		this.preserve04 = preserve04;
    	}
    	public String getPreserve05() {
    		return preserve05;
    	}
    	public void setPreserve05(String preserve05) {
    		this.preserve05 = preserve05;
    	}
    	}
    

     EmailType:

    package com.manage.email.bean;
    
    public class EmailType {
     private Integer emailTypeId;//邮件类型Id
     private String emailTypeNo;//邮件类型编号,  10100
     private String emailTypeEnName;//邮件类型英文名称
     private String emailTypeChName;//邮件类型中文名称
     private String remark;//邮件类型备注
     private Integer isDel;//是否删除,0表示未删除,1表示已删除
     private String preserve01;//预留字段01
     private String preserve02;//预留字段01
     private String preserve03;//预留字段01
     private String preserve04;//预留字段01
     private String preserve05;//预留字段01 
    public EmailType() {
    	super();
    }
    //全部构造方法
    public EmailType(Integer emailTypeId, String emailTypeNo,
    		String emailTypeEnName, String emailTypeChName, String remark,
    		Integer isDel, String preserve01, String preserve02, String preserve03,
    		String preserve04, String preserve05) {
    	super();
    	this.emailTypeId = emailTypeId;
    	this.emailTypeNo = emailTypeNo;
    	this.emailTypeEnName = emailTypeEnName;
    	this.emailTypeChName = emailTypeChName;
    	this.remark = remark;
    	this.isDel = isDel;
    	this.preserve01 = preserve01;
    	this.preserve02 = preserve02;
    	this.preserve03 = preserve03;
    	this.preserve04 = preserve04;
    	this.preserve05 = preserve05;
    }
    
    public Integer getEmailTypeId() {
    	return emailTypeId;
    }
    public void setEmailTypeId(Integer emailTypeId) {
    	this.emailTypeId = emailTypeId;
    }
    public String getEmailTypeNo() {
    	return emailTypeNo;
    }
    public void setEmailTypeNo(String emailTypeNo) {
    	this.emailTypeNo = emailTypeNo;
    }
    public String getEmailTypeEnName() {
    	return emailTypeEnName;
    }
    public void setEmailTypeEnName(String emailTypeEnName) {
    	this.emailTypeEnName = emailTypeEnName;
    }
    public String getEmailTypeChName() {
    	return emailTypeChName;
    }
    public void setEmailTypeChName(String emailTypeChName) {
    	this.emailTypeChName = emailTypeChName;
    }
    public String getRemark() {
    	return remark;
    }
    public void setRemark(String remark) {
    	this.remark = remark;
    }
    public Integer getIsDel() {
    	return isDel;
    }
    public void setIsDel(Integer isDel) {
    	this.isDel = isDel;
    }
    public String getPreserve01() {
    	return preserve01;
    }
    public void setPreserve01(String preserve01) {
    	this.preserve01 = preserve01;
    }
    public String getPreserve02() {
    	return preserve02;
    }
    public void setPreserve02(String preserve02) {
    	this.preserve02 = preserve02;
    }
    public String getPreserve03() {
    	return preserve03;
    }
    public void setPreserve03(String preserve03) {
    	this.preserve03 = preserve03;
    }
    public String getPreserve04() {
    	return preserve04;
    }
    public void setPreserve04(String preserve04) {
    	this.preserve04 = preserve04;
    }
    public String getPreserve05() {
    	return preserve05;
    }
    public void setPreserve05(String preserve05) {
    	this.preserve05 = preserve05;
    }
    }
    

    后台报错信息:

    [com.opensymphony.xwork2.ognl.OgnlValueStack] - Error setting expression 'emaiTypeDto.emailTypeNo' with value '[Ljava.lang.String;@ee1aa2'
      ognl.OgnlException: target is null for setProperty(null, "emailTypeNo", [Ljava.lang.String;@ee1aa2)
    	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2309)
    	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
    	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
    	at ognl.SimpleNode.setValue(SimpleNode.java:301)
    	at ognl.ASTChain.setValueBody(ASTChain.java:227)
    	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
    	at ognl.SimpleNode.setValue(SimpleNode.java:301)
    	at ognl.Ognl.setValue(Ognl.java:737)
    	at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:217)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:186)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:173)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:151)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:317)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:228)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	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:249)
    	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.manage.common.interceptor.LoginedCheckInterceptor.intercept(LoginedCheckInterceptor.java:50)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
    	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1773)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:619)
    

    原因代码:

    /**
    	 * 查询邮件类型编号是否存在已存在不允许添加
    	 */
    @SuppressWarnings("unchecked")
    public EmailTypeDto selectValidateEmailTypeNo(EmailTypeDto emailTypeDto) {
    	EmailTypeDto emailTypeDto1=null;
    	String emailTypeNo=null;
    	if(StringUtils.isNotBlank(emailTypeDto.getEmailTypeNo())){
    	StringBuilder stringBuilder=new StringBuilder("select * from ft_emailType_t where emailTypeNo="+emailTypeNo);
    	 Session session=sessionFactory.getCurrentSession();
    	    SQLQuery sqlQuery=session.createSQLQuery(stringBuilder.toString());
    	    sqlQuery.setResultTransformer(Transformers.aliasToBean(MerchantDto.class));
    		List<EmailTypeDto> list = sqlQuery.list();
    		if (list != null && !list.isEmpty()) {
    			emailTypeDto1=list.get(0);
    		}
    	}
    	return emailTypeDto1;
    }
    

     没有转换为EmailTypeDto,出现的错误。

    原因二:

    还要注意在Action中private属性预定要实例化new 类名(),否则拦截器也拦截,未对EmailTypeDto进行实例化。

    package com.manage.email.action;
    
    import com.manage.common.util.ActionBase;
    import com.manage.common.util.PagingJson;
    import com.manage.email.bean.EmailType;
    import com.manage.email.dto.EmailTypeDto;
    import com.manage.email.service.EmailTypeService;
    
    @SuppressWarnings("serial")
    public class EmailTypeAction extends ActionBase{
    private PagingJson<EmailType> emailTypePagingJson;
    private EmailType emailType;
    private EmailTypeDto emailTypeDto;
    private EmailTypeService emailTypeService;
    public PagingJson<EmailType> getEmailTypePagingJson() {
    	return emailTypePagingJson;
    }
    public void setEmailTypePagingJson(PagingJson<EmailType> emailTypePagingJson) {
    	this.emailTypePagingJson = emailTypePagingJson;
    }
    public EmailType getEmailType() {
    	return emailType;
    }
    public void setEmailType(EmailType emailType) {
    	this.emailType = emailType;
    }
    public EmailTypeDto getEmailTypeDto() {
    	return emailTypeDto;
    }
    public void setEmailTypeDto(EmailTypeDto emailTypeDto) {
    	this.emailTypeDto = emailTypeDto;
    }
    public EmailTypeService getEmailTypeService() {
    	return emailTypeService;
    }
    public void setEmailTypeService(EmailTypeService emailTypeService) {
    	this.emailTypeService = emailTypeService;
    }
    /**
     * 查询
     * @return
     */
    public String selectEmailType(){
    	emailTypePagingJson=emailTypeService.selectListEmailType(emailTypeDto);
    	return "searchEmailTypes";
    }
    /**
     * 查询是否已存在邮件类型编号,已存在前台提示,不存在不用提示
     * @return
     */
    public String selectValidateEmailTypeNo(){
    	try{
    	emailTypeService.selectValidateEmailTypeNo(emailTypeDto);
    	emailTypeDto.setSuccess(Boolean.TRUE);
    	}catch(Exception e){
    		emailTypeDto.setMessage(e.getMessage());
    		emailTypeDto.setSuccess(Boolean.FALSE);
    	}
    	return "selectValidateEmailTypeNo";
    }
    /**
     *邮件类型编号不存在,允许新增
     * @return
     */
    public String saveEmailType(){
    try {
    	emailTypeService.saveEmailType(emailTypeDto);
        emailTypeDto.setSuccess(Boolean.TRUE);
    } catch (Exception e) {
    	emailTypeDto.setSuccess(Boolean.FALSE);
    	emailTypeDto.setMessage(e.getMessage());
    }
    return "emailTypeDto";
    }
    }
    

     前台js

    //验证类型编号是否存在,已存在不允许添加并提示
    function checkAddEmailTypeNoValue(emailTypeNo){
    	var bool=new Boolean();
    	$.ajax({
    					url:getBasePath()+"/mainInfo/selectValidateEmailTypeNoET.action",
    					type:'post',
    					data:{"emaiTypeDto.emailTypeNo":emailTypeNo},
    					dataType:'json',
                         async :false,
    					success:function(data){
    						if(data.success){
    							$("#addEmailTypeNoSpan").text(" *");
    							$("#addEmailTypeNoSpan").attr("check","true");
    							bool=true;
    						}else if(!data.success){
    							var message=data.message;
    							$("#addEmailTypeNoSpan").text(message);
    							$("#addEmailTypeNoSpan").focus();
    							$("#addEmailTypeNoSpan").attr("check","false");
    							bool=false;
    						}
    					},error : function(XMLHttpRequest, textStatus, errorThrown) {
                         if("parsererror"==textStatus){
                        	 if (top.location !== self.location) { 
                           top.location = getBasePath()+ "/login.jsp";//跳出框架,并回到首页                         
                             }
                         }
                          if("error"==textStatus){
                       $.confrimInfo("<i style='display:inline-block;vertical-align: middle; font-size:42px;background:none;padding:0px 10px;color:#DC143C' class='glyphicon glyphicon-info-sign'></i>不好意思,出问题了!请及时联系技术!",function(){
    							    
    							  });
                         }
    					
    				}
    				  });
    	return bool;
    }
    

     前台报错:

    不好意思,出问题了!请及时联系技术!"

    后台报错

    [com.opensymphony.xwork2.ognl.OgnlValueStack] - Error setting expression 'emaiTypeDto.emailTypeNo' with value '[Ljava.lang.String;@1f78dde'
      ognl.OgnlException: target is null for setProperty(null, "emailTypeNo", [Ljava.lang.String;@1f78dde)
    	at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:2309)
    	at ognl.ASTProperty.setValueBody(ASTProperty.java:127)
    	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
    	at ognl.SimpleNode.setValue(SimpleNode.java:301)
    	at ognl.ASTChain.setValueBody(ASTChain.java:227)
    	at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:220)
    	at ognl.SimpleNode.setValue(SimpleNode.java:301)
    	at ognl.Ognl.setValue(Ognl.java:737)
    	at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:217)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.trySetValue(OgnlValueStack.java:186)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:173)
    	at com.opensymphony.xwork2.ognl.OgnlValueStack.setParameter(OgnlValueStack.java:151)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:317)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:228)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236)
    	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	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:249)
    	at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at com.manage.common.interceptor.LoginedCheckInterceptor.intercept(LoginedCheckInterceptor.java:50)
    	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
    	at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
    	at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511)
    	at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
    	at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:185)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
    	at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:269)
    	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
    	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1773)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    	at java.lang.Thread.run(Thread.java:619)
    [com.manage.email.service.impl.EmailTypeServiceImpl] - 查询邮件类型编号是否存在参数为空
    

     JSP

    <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        
        <title>邮件类型新增</title>
        <link href="../../css/merchant/bootstrap.min.css" rel="stylesheet" />
    			<link href="../../css/common/namp.css" rel="stylesheet">    		
    			<script src="../../js/common/jquery-1.11.0.min.js"></script>
    			<script src="../../js/common/bootstrap.min.js"></script>
    			<script src="../../js/common/common-base.js"></script>
    			<script  src="../../js/email/emailTypeAdd.js"></script>	
    			<script  src="../../js/common/page.js"></script>		
        	<style type="text/css">
    body {
    	background-color: rgb(253, 253, 253);
    }
    
    table {
    	background-color: #ffffff;
    }
    @media (min- 768px) and (max- 991px) {  
        /*在768和991像素之间的屏幕里,这里的样式才生效*/   
        label{margin-left:-66px;}
    }  
    @media (min- 992px) and (max- 1199px) {  
        /*在992和1199像素之间的屏幕里,这里的样式才生效*/  
        label{margin-left:-66px;}
    }  
    @media (min- 1200px) {  
        /*在大于1200像素的屏幕里,这里的样式才生效*/  
        label{margin-left:-66px;}
    } 
    </style>
      </head>
      <body>
      	    <div style=" 90%; margin:20px auto" class="row" >
    		<fieldset class="relative"> 
    					<legend align="left">邮件类型新增</legend>
    		          	<form role="form" class="form-horizontal" method="post" id="addEmailTypeForm"> 	          		
    			          		<div class="form-group col-sm-12 col-md-12 col-lg-12">
    							    <label class="control-label col-sm-4 col-md-4 col-lg-4 row" for="">类型编号:</label>
    							    <div class="col-sm-5 col-md-5 col-lg-5">
    							    <!--使用DTO必须将name为DTO类中的对象.属性名称  -->
    							      <input type="text" class="form-control" name="emaiTypeDto.emailTypeNo" id="addEmailTypeNo" onbeforepaste="if(this.value.length>5){this.value=this.value.substr(0,5)};clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))" onkeyup="if(this.value.length>5){this.value=this.value.substr(0,5)};this.value=this.value.replace(/[^d]/g,'');"/>
    							    </div>
    							      <span class="help-block col-sm-3 col-md-3 col-lg-3" style="color:red;" check="false" id="addEmailTypeNoSpan">*</span>
    							 </div>
    							 <div class="form-group col-sm-12 col-md-12 col-lg-12">   
    							    <label class="control-label col-sm-4 col-md-4 col-lg-4 row" for="">英文名称:</label>
    							    <div class="col-sm-5 col-md-5 col-lg-5">
    							    	<textarea type="text" class="form-control" cols="20" rows="5" name="emailTypeDto.emailTypeEnName" id="addEmailTypeEnName" onbeforepaste="if(this.value.length>200){this.value=this.value.substr(0,200)};clipboardData.setData('text',clipboardData.getData('text').replace(/[^a-zu4e00-u9fa5]/g,''))" onkeyup="if(this.value.length>200){this.value=this.value.substr(0,200)};value=value.replace(/[^a-zA-Zu4e00-u9fa5]/g,'')"></textarea>
    							    </div>
    							      <span class="help-block col-sm-3 col-md-3 col-lg-3" style="color:red;" check="false" id="addEmailTypeEnNameSpan">*</span>
    							 </div>
    							 <div class="form-group col-sm-12 col-md-12 col-lg-12">   
    							    <label class="control-label col-sm-4 col-md-4 col-lg-4 row" for="">中文名称:</label>
    							    <div class="col-sm-5 col-md-5 col-lg-5">
    							    	<textarea type="text" class="form-control" cols="20" rows="5" name="emailTypeDto.emailTypeChName" id="addEmailTypeChName" onbeforepaste="if(this.value.length>200){this.value=this.value.substr(0,200)};clipboardData.setData('text',clipboardData.getData('text').replace(/[^a-zu4e00-u9fa5]/g,''))" onkeyup="if(this.value.length>200){this.value=this.value.substr(0,200)};value=value.replace(/[^a-zu4e00-u9fa5]/g,'')"></textarea>
    							    </div>
    							    <span class="help-block col-sm-3 col-md-3 col-lg-3" style="color:red;" check="false" id="addEmailTypeChNameSpan">*</span>
    							</div>
    							<div class="form-group col-sm-12 col-md-12 col-lg-12">   
    							    <label class="control-label col-sm-4 col-md-4 col-lg-4 row" for="">备注:</label>
    							    <div class="col-sm-5 col-md-5 col-lg-5">
    							     <textarea class="form-control" name="emailTypeDto.remark" cols="20" rows="5" id="addRemark" onkeyup="if(this.value.length>200){this.value=this.value.substr(0,200)};" onbeforepaste="if(this.value.length>200){this.value=this.value.substr(0,200)};"></textarea>
    							    </div>
    							</div>
    						    <div class="form-group text-center col-sm-12 col-md-12 col-lg-12">
    						      <button  type="button" class="btn btn-default"  id="saveEmailType">保存</button>
    						        <button type="button" class="btn btn-default" id="closeWin">关闭</button>  
    						    </div>
    		          	</form>
    		  </fieldset>
    	</div>
      </body>
    </html>
    
  • 相关阅读:
    【CANoe基础】CANoe常用操作
    ZedGraph控件横纵坐标显示中文名(转)
    Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性(转)
    c# 访问sqlite资源
    混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。
    ABP框架资源
    vue新建项目一直在downloading template转,最后超时
    vscode(实验)--ABP框架 .net core 版本的安装与运行(vue模板)(转)
    安装-打开-运行-ABP框架(asp.net core 2.X+Vue)运行前端(转)
    VSCode打开Visual Studio的ABP框架项目(转)
  • 原文地址:https://www.cnblogs.com/communist/p/6046981.html
Copyright © 2011-2022 走看看