首页 新闻 搜索 专区 学院

ssh框架中创建一个用户管理系统时修改一个对象时出现了找不到'id'得bug

0
悬赏园豆:50 [待解决问题]

HTTP Status 500 - id to load is required for loading


type Exception report

message id to load is required for loading

description The server encountered an internal error that prevented it from fulfilling this request.

exception

java.lang.IllegalArgumentException: id to load is required for loading
	org.hibernate.event.LoadEvent.<init>(LoadEvent.java:89)
	org.hibernate.event.LoadEvent.<init>(LoadEvent.java:61)
	org.hibernate.impl.SessionImpl.get(SessionImpl.java:1002)
	org.hibernate.impl.SessionImpl.get(SessionImpl.java:998)
	cj.oct.base.impl.BaseDaoImpl.getById(BaseDaoImpl.java:51)
	cj.oct.dao.impl.RoleDaoImpl.getById(RoleDaoImpl.java:20)
	cj.oct.dao.impl.RoleDaoImpl.getById(RoleDaoImpl.java:1)
	cj.oct.service.impl.RoleServiceImpl.getById(RoleServiceImpl.java:32)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	com.sun.proxy.$Proxy11.getById(Unknown Source)
	cj.oct.action.ManageAction.edit(ManageAction.java:58)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:606)
	ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:892)
	ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1294)
	ognl.ObjectMethodAccessor.callMethod(ObjectMethodAccessor.java:68)
	com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethodWithDebugInfo(XWorkMethodAccessor.java:117)
	com.opensymphony.xwork2.ognl.accessor.XWorkMethodAccessor.callMethod(XWorkMethodAccessor.java:108)
	ognl.OgnlRuntime.callMethod(OgnlRuntime.java:1370)
	ognl.ASTMethod.getValueBody(ASTMethod.java:91)
	ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
	ognl.SimpleNode.getValue(SimpleNode.java:258)
	ognl.Ognl.getValue(Ognl.java:467)
	ognl.Ognl.getValue(Ognl.java:431)
	com.opensymphony.xwork2.ognl.OgnlUtil$3.execute(OgnlUtil.java:352)
	com.opensymphony.xwork2.ognl.OgnlUtil.compileAndExecuteMethod(OgnlUtil.java:404)
	com.opensymphony.xwork2.ognl.OgnlUtil.callMethod(OgnlUtil.java:350)
	com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:430)
	com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:290)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:251)
	org.apache.struts2.interceptor.DeprecationInterceptor.intercept(DeprecationInterceptor.java:41)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:168)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
	org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:76)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:229)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.DateTextFieldInterceptor.intercept(DateTextFieldInterceptor.java:125)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:253)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
	com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:140)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:193)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:189)
	com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:245)
	org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54)
	org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:567)
	org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)
	org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.70 logs.


Apache Tomcat/7.0.70

//editUI.jsp中得代码如下,主要就是editUI.jsp页面修改过后提交到action时报错

 editUI<br>
  <s:form action="path_edit?id=%{id}"><br>
  <s:hidden name="id"></s:hidden>
 <s:textfield name="roleName"></s:textfield><br>
  <s:textarea name="description"></s:textarea><br>
 <s:submit value="提交"></s:submit>
  </s:form>
  </body>

//ManageAction中的editUI以及edit方法的代码如下:

package cj.oct.action;

import java.util.List;

import javax.annotation.Resource;
import javax.persistence.metamodel.SetAttribute;

import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import cj.oct.entity.Role;
import cj.oct.service.RoleService;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
@Component("manageAction")
@Scope("prototype")
    public class ManageAction{
    private Long id;
    private String roleName;
    private String description;
    public Long getId() {
        return id;
    }
    public void setId(Long id) {
        this.id = id;
    }
    @Resource
    private RoleService roleService;
public String add() throws Exception {
    Role r=new Role();
    r.setRoleName(roleName);
    r.setDescription(description);
    System.out.println(r+roleName+"'''"+description);
    roleService.save(r);
    return "toList";
}
public String getRoleName() {
    return roleName;
}
public void setRoleName(String roleName) {
    this.roleName = roleName;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
public String delete() throws Exception {
    
        roleService.delete(id);
    return "toList";
}
public String edit() throws Exception {
    System.out.println(id+".edit..=id");
    Role r=roleService.getById(id);
    r.setRoleName(roleName);
    r.setDescription(description);
    roleService.update(r);
    return "toList";
}
public String list() throws Exception {
    List rolelist=(List)roleService.findAll();
    ActionContext.getContext().put("rolelist", rolelist);
    return "list";
}
public String addUI() throws Exception {
    
    return "addUI";
}
public String editUI() throws Exception {
    
        Role role=roleService.getById(id);
        //ActionContext.getContext().getValueStack().push(role);
        this.roleName=role.getRoleName();
        this.description=role.getDescription();
    return "editUI";
}

}
就是由editUI.jsp页面修改数据后提交到edit方法时报错:2016-10-21 15:20:01,978 ERROR [org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler] - Exception occurred during processing request: id to load is required for loading
java.lang.IllegalArgumentException: id to load is required for loading

为什么ManageAction中的edit访问不了呢?

cj_java_web的主页 cj_java_web | 初学一级 | 园豆:17
提问于:2016-10-21 15:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册