天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1688|回复: 5

[已解决] 如何在自定义jsp中实现修改密码的功能报错

[复制链接]
晨帛信息 发表于 2013-9-29 17:20:25 | 显示全部楼层 |阅读模式
本帖最后由 echo 于 2013-9-29 17:55 编辑

<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="cn.myapps.core.user.action.WebUser"%>
<%@ page import="cn.myapps.constans.Web"%>
<%@ page import="cn.myapps.core.user.ejb.UserProcessBean"%>
<%@ page import="cn.myapps.core.user.ejb.UserProcess"%>
<%@ page import="cn.myapps.core.user.ejb.UserVO"%>
<%@ page import="cn.myapps.util.Security"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Insert title here</title>
</head>
<%
     String testData = request.getParameter("testData");;
     String userNo="liujun";
        System.out.println("=========" + testData);
        if (testData != null && testData.equals("1")) {
                System.out.println("-----------");
                UserProcessBean uprocessb = new UserProcessBean();
                UserVO user = uprocessb.login(userNo,
                                "11e2-ad6b-dfd0e074-ac1d-d340f16396a5");//根据用户帐号,企业域id获取用户对象
                                   
            if (user != null) {
              System.out.println("222222");
            UserVO uservo = new UserVO();
            uservo.setLoginno(userNo); //登录帐号
            uservo.setLoginpwd("123456"); //登录密码
            uprocessb.doUpdate(uservo);

                                }
        }
%>
<body>
<form id="testform" action="update-password.jsp" method="POST"
        theme="simple">
        <input type="hidden" name="testData" value="1" />
        <input type="text" name="liujun"></input>
        <input type="submit" name="submittest" value="提交"></input>
</form>
</body>
</html>



这是我自己一个密码到了
uprocessb.doUpdate(uservo);
这句换的时候会报错
=========null
=========1
-----------
222222
17:18:02,602 ERROR OBPMFilterDispatcher:48 - URL: /obpm/portal/custom/update-password.jsp
org.apache.jasper.JasperException: An exception occurred processing JSP page /portal/custom/update-password.jsp at line 30

27:             UserVO uservo = new UserVO();
28:             uservo.setLoginno(userNo); //鐧诲綍甯愬彿
29:             uservo.setLoginpwd("123456"); //鐧诲綍瀵嗙爜
30:             uprocessb.doUpdate(uservo);
31:
32:                                 }
33:         }


Stacktrace:
        at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at com.opensymphony.webwork.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:177)
        at cn.myapps.base.web.filter.OBPMFilterDispatcher.doFilter(OBPMFilterDispatcher.java:43)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at cn.myapps.base.web.filter.AjaxMultiLanguageFilter.doFilter(AjaxMultiLanguageFilter.java:42)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at cn.myapps.base.web.filter.PersistenceFilter.doFilter(PersistenceFilter.java:30)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at cn.myapps.base.web.filter.SecurityFilter.doFilter(SecurityFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jasig.cas.client.util.AssertionThreadLocalFilter.doFilter(AssertionThreadLocalFilter.java:54)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jasig.cas.client.util.HttpServletRequestWrapperFilter.doFilter(HttpServletRequestWrapperFilter.java:75)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jasig.cas.client.validation.AbstractTicketValidationFilter.doFilter(AbstractTicketValidationFilter.java:197)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at cn.myapps.core.sso.cas.filter.OBPMAuthenticationFilter.doFilter(OBPMAuthenticationFilter.java:84)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at cn.myapps.base.web.filter.EncodingFilter.doFilter(EncodingFilter.java:27)
        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:233)
        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:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
        at java.lang.Thread.run(Thread.java:619)
Caused by: org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save(): cn.myapps.core.user.ejb.UserVO
        at org.hibernate.id.Assigned.generate(Assigned.java:33)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
        at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:186)
        at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:123)
        at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:53)
        at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:677)
        at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:661)
        at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:665)
        at cn.myapps.base.dao.HibernateBaseDAO.update(HibernateBaseDAO.java:558)
        at cn.myapps.core.user.ejb.UserProcessBean.update(UserProcessBean.java:189)
        at cn.myapps.core.user.ejb.UserProcessBean.doUpdate(UserProcessBean.java:153)
        at org.apache.jsp.portal.custom.update_002dpassword_jsp._jspService(update_002dpassword_jsp.java:88)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
        ... 46 more
sophie 发表于 2013-9-29 17:27:45 | 显示全部楼层
本帖最后由 echo 于 2013-9-29 17:33 编辑

您好,您的语句
if (user != null) {
              System.out.println("222222");
            UserVO uservo = new UserVO();
            uservo.setLoginno(userNo); //登录帐号
            uservo.setLoginpwd("123456"); //登录密码
            uprocessb.doUpdate(uservo);

                                }不能这么写 你是根据查出来的用户更改密码 ,那么你直接使用上面的user.setLoginpwd("123456");就行了 不用再new一个新的实例。最后再使用uprocessb.doUpdate(user)
您先改,有问题再沟通。
 楼主| 晨帛信息 发表于 2013-9-29 17:54:43 | 显示全部楼层
该问题已解决。 谢谢,
 楼主| 晨帛信息 发表于 2013-9-29 17:59:13 | 显示全部楼层
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="cn.myapps.core.user.action.WebUser"%>
<%@ page import="cn.myapps.constans.Web"%>
<%@ page import="cn.myapps.core.user.ejb.UserProcessBean"%>
<%@ page import="cn.myapps.core.user.ejb.UserProcess"%>
<%@ page import="cn.myapps.core.user.ejb.UserVO"%>
<%@ page import="cn.myapps.util.Security"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<title>Insert title here</title>
</head>
<%
     String testData = request.getParameter("testData");;
     String userNo="liujun";
        System.out.println("=========" + testData);
        if (testData != null && testData.equals("1")) {
                System.out.println("-----------");
                UserProcessBean uprocessb = new UserProcessBean();
                UserVO user = uprocessb.getUserByLoginno(userNo,"11e2-ad6b-dfd0e074-ac1d-d340f16396a5");//根据用户帐号获取用户对象                      
            if (user != null) {
                    System.out.println("22222");
                    Security sc=new Security();
                    String aa=sc.encryptPassword("123456");
              user.setLoginpwd(aa); //登录密码
            uprocessb.doUpdate(user);

           }
        }
%>
<body>
<form id="testform" action="update-password.jsp" method="POST"
        theme="simple">
        <input type="hidden" name="testData" value="1" />
        <input type="text" name="liujun"></input>
        <input type="submit" name="submittest" value="提交"></input>
</form>
</body>
</html>

上面是我的代码,修改密码的话需要改一部分,希望大家都可以用
echochen 发表于 2013-9-30 17:31:51 | 显示全部楼层
感谢您的分享。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 03:34

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表