这是actionpackage com.itsp.userinfo.web.action;import com.itsp.userinfo.dao.UserInfoDao;
import com.itsp.userinfo.dao.model.OpratorInfo;
import com.itsp.userinfo.dao.model.UserInfo;
import com.itsp.userinfo.dao.model.UserType;
import com.itsp.util.BaseAction;public class UserInfoAction extends BaseAction{
/**
 * 
 */
private static final long serialVersionUID = 1L;
private UserInfo userInfo;
private OpratorInfo opratorInfo;
private UserInfoDao userInfoDao;

//添加操作员和企业信息
public void addUserInfo(){
try{
String bol="";

UserType type=new UserType();
type.setUserType("test");
type.setTypeName("test");
userInfo.setVerifyFlag("0");
userInfo.setEffectFlag("1");
userInfo.setUserType(type);
userInfo.setCompanyName(opratorInfo.getCompanyName());

opratorInfo.setUserInfo(userInfo);
opratorInfo.setStatus("0");
opratorInfo.setOpratorName("guanliyuan");
int opratorInfoId=userInfoDao.save(opratorInfo);
if(opratorInfoId!=-1){
bol="true";
}else{
bol="false";
}

String jsonString = "{success:"+bol+",msgs:'操作已执行'}";
System.out.println(jsonString);
response.getWriter().write(jsonString);

}catch(Exception e){
e.printStackTrace();
}


}

/**
 * @return the userInfo
 */
public UserInfo getUserInfo() {
return userInfo;
}
/**
 * @param userInfo the userInfo to set
 */
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
/**
 * @return the userInfoDao
 */
public UserInfoDao getUserInfoDao() {
return userInfoDao;
}
/**
 * @param userInfoDao the userInfoDao to set
 */
public void setUserInfoDao(UserInfoDao userInfoDao) {
this.userInfoDao = userInfoDao;
} /**
 * @return the opratorInfo
 */
public OpratorInfo getOpratorInfo() {
return opratorInfo;
}
/**
 * @param opratorInfo the opratorInfo to set
 */
public void setOpratorInfo(OpratorInfo opratorInfo) {
this.opratorInfo = opratorInfo;
}

}
这是OpratorInfo类package com.itsp.userinfo.dao.model;import java.io.Serializable;public class OpratorInfo implements Serializable {
/**
 * 
 */
private static final long serialVersionUID = 1L;
private int opratorId;
//操作员姓名
private String opratorName;
//登录人姓名
private String loginName;
//登录密码
private String password;
//所属公司
private UserInfo userInfo;
//公司名
private String companyName;
//状态:0-启用;1-停用
private String status;
//岗位职位信息
private Post post;
//备注
private String re;
public OpratorInfo() {

}
/**
 * @return the opratorId
 */
public int getOpratorId() {
return opratorId;
}
/**
 * @param opratorId the opratorId to set
 */
public void setOpratorId(int opratorId) {
this.opratorId = opratorId;
}
/**
 * @return the opratorName
 */
public String getOpratorName() {
return opratorName;
}
/**
 * @param opratorName the opratorName to set
 */
public void setOpratorName(String opratorName) {
this.opratorName = opratorName;
} /**
 * @return the loginName
 */
public String getLoginName() {
return loginName;
}
/**
 * @param loginName the loginName to set
 */
public void setLoginName(String loginName) {
this.loginName = loginName;
}

/**
 * @return the password
 */
public String getPassword() {
return password;
}
/**
 * @param password the password to set
 */
public void setPassword(String password) {
this.password = password;
}
/**
 * @return the userInfo
 */
public UserInfo getUserInfo() {
return userInfo;
}
/**
 * @param userInfo the userInfo to set
 */
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
/**
 * @return the companyName
 */
public String getCompanyName() {
return companyName;
}
/**
 * @param companyName the companyName to set
 */
public void setCompanyName(String companyName) {
this.companyName = companyName;
}
/**
 * @return the status
 */
public String getStatus() {
return status;
}
/**
 * @param status the status to set
 */
public void setStatus(String status) {
this.status = status;
} /**
 * @return the post
 */
public Post getPost() {
return post;
}
/**
 * @param post the post to set
 */
public void setPost(Post post) {
this.post = post;
}
/**
 * @return the re
 */
public String getRe() {
return re;
}
/**
 * @param re the re to set
 */
public void setRe(String re) {
this.re = re;
}
}

解决方案 »

  1.   

    consloe报错如下:
    14:49:12,046  WARN OgnlValueStack:49 - Error setting expression 'opratorInfo.companyName' with value '[Ljava.lang.String;@136eabc'
    ognl.OgnlException: target is null for setProperty(null, "companyName", [Ljava.lang.String;@136eabc)
    at ognl.OgnlRuntime.setProperty(OgnlRuntime.java:1665)
    at ognl.ASTProperty.setValueBody(ASTProperty.java:101)
    at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
    at ognl.SimpleNode.setValue(SimpleNode.java:246)
    at ognl.ASTChain.setValueBody(ASTChain.java:172)
    at ognl.SimpleNode.evaluateSetValueBody(SimpleNode.java:177)
    at ognl.SimpleNode.setValue(SimpleNode.java:246)
    at ognl.Ognl.setValue(Ognl.java:476)
    at com.opensymphony.xwork2.ognl.OgnlUtil.setValue(OgnlUtil.java:198)
    at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:161)
    at com.opensymphony.xwork2.ognl.OgnlValueStack.setValue(OgnlValueStack.java:149)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.setParameters(ParametersInterceptor.java:276)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:187)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:77)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:77)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:102)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
    at java.lang.Thread.run(Thread.java:619)opratorInfo为null,但是在action里明明提供了set方法,但就是报错,希望大家帮忙看下,小弟非常感谢!!!
      

  2.   

    get set 了没值,你看看其他值取道了没,如果取道了就是你opratorInfo这个的问题,如果都没取道,自己找配置文件吧.
      

  3.   


    只有opratorInfo没有取到,其他都取到了...
      

  4.   

    重新发布一下  
    ognl赋值时
    opratorInfo没有实例化
      

  5.   

    要看完整HTML代码才有结论。主要是opratorInfo.companyName那个控件的代码
      

  6.   

    opratorInfo实例化问题,没有传值到opratorInfo中,opratorInfo的set方法
      

  7.   


        public OpratorInfo getOpratorInfo() {
            if(opratorInfo==null){
                 opratorInfo=new OpratorInfo ();
            }
            return opratorInfo;
        }