String forward=count>0?"/regFailed.jsp":"/regSuccess.jsp";
this.getServletContext().getRequestDispatcher(forward).forward(null,null);
记住前边的斜杠
sql语句错误先检查
long res=(Long)se.createQuery("select count(id) from User u where u.name=:name").setString("name", u.getName()).uniqueResult().toString();
强制转化写法,占位符是":name" 不是"?"
openSessionInView filter 放在struts filter后边
struts spring 整合的时候 action 是由 string spring plongin 控制的 不需要写@component 是在set方法上用byname方式
如果在strus.xml中action class写成spring中bean的名字,就可以将action交spring来初始化
struts 中设置result type=redirect 在jsp中不能使用struts标签
在编bbs时,想在回复后跳转到帖子的开头,查strus文档,发现result动态调用,结果是动态action或jsp,却不能传值,后想起chain是共享值栈的,成功。
hibernate 中自动关联load实例
Article a = new Article();
a.setArticleText(articleText);
a.setCreateTime(new Date());
a.setUser((User) hibernateTemplate.find("from User u where u.name=?",
name).get(0));
Module m = new Module();
m.setId(mid);
a.setModule(m);
a.setRootArticle(a);
hibernateTemplate.save(a);
return a.getId();
在启用了openSessionInView后session的flushMode设置成为NEVER,即readonly,完整设置
<filter>
<filter-name>openSessionInView</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>
<init-param>
<param-name>singleSession</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>openSessionInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
动态result :redirect时可以传参${} chain时不用传参,共享值栈;
在做ssh-bbs时 想要实现登录后跳转到请求页,在项目中没有使用ajax,中途使用了很多方法都失败了;
工作流程:验证登录interceptor,dispather到login.jsp提交到loginAction;
1.让loginAction获取requestURL和requestQuery,然后使用result传参${}来实现;错误:url为loginAction;而且redirectAction时不能传参;
2.让interceptor 获取 跳转信息,login.jsp里用struts标签获取,hidden,失败;
3.让interceptor 获取 跳转信息 respones.setAttribute("nextAction",request.getRequestURI()+"?"+request.getQuery()),login.jsp里get出来放到hidden里,action接受后用ServletActionContext.getRespose().sendredirect(nextAction),成功;
4.让interceptor 获取 跳转信息 respones.setAttribute("nextAction",request.getServletPath()+"?"+request.getQuery()),login.jsp里get出来放到hidden里,action接受后return "success"; 在struts.xml中设置 result type=redirect 跳转到${next},成功;
5.还可以通过chain方法,先用loginAction获取到QueryString,实现太麻烦,不灵活,舍弃;
public class LoginInterceptor extends AbstractInterceptor {
@Override
public String intercept(ActionInvocation arg0) throws Exception {
if(arg0.getInvocationContext().getSession().get("name")==null){
HttpServletRequest request=ServletActionContext.getRequest();
request.setAttribute("nextAction", request.getServletPath()+"?"+request.getQueryString());
return "reLogin";
}
return arg0.invoke();
}
}
login.jsp
<input type="hidden" name="nextAction" value="<%=request.getAttribute("nextAction") %>"/>
struts.xml
<interceptors>
<interceptor name="loginInterceptor"
class="p2world.sshBbs.interceptor.LoginInterceptor" />
</interceptors>
<global-results>
<result name="reLogin">login.jsp</result>
</global-results>
<action name="login" class="loginAction">
<result name="success" type="redirect">${nextAction}</result>
<result name="fail" type="redirect">fail.jsp</result>
</action>
loginAction
private String nextAction;
public String execute() throws IOException{
System.out.println(nextAction);
// HttpServletResponse response=ServletActionContext.getResponse();
password=new MD5Code().getMD5ofStr(password);
User u=new User();
u.setName(name);
u.setPassword(password);
if(userService.login(u)){
ActionContext.getContext().getSession().put("name", name);
// response.sendRedirect(nextAction);
return "success";
}else {
return "fail";
}
}
分享到:
相关推荐
TIPTOP GP日常问题集,主要记录遇到的问题及解决方法,希望能对大家有点帮助;CALL s_showmsg_init() FOREACH rvvslk31_curs INTO l_rvvslk02,l_rvvslk31,l_rvvslk17 IF cl_null(l_rvvslk17) OR l_rvvslk17 =...
《金蝶KIS产品常见问题集(2010上册)》为用户提供了一个全面的技术支持指南,涵盖了从日常操作到高级系统维护的各类问题。通过对这些问题的深入解析,不仅可以帮助用户迅速解决问题,还能够提高他们对金蝶KIS专业版V...
《常用算法程序集-徐士良》是一本深入探讨计算机科学中常见算法的书籍,作者徐士良在书中详尽地介绍了多种实用算法,并通过实际的程序代码来帮助读者理解和应用这些算法。这本书旨在提高读者的编程技能和解决实际...
在Oracle数据库的日常管理和应用开发中,中文字符集的设置和管理是一项至关重要的工作。不当的字符集配置可能导致数据存储错误、查询结果异常或用户界面显示乱码等问题。本文将深入探讨Oracle中的中文字符集问题,...
【企业日常问题管理】 在企业管理实践中,案例分析是提升组织学习能力和判断力的重要工具,能够帮助企业避免“青蛙现象”,即对环境变化的逐渐适应导致的潜在危机。《蔷薇集》是一个汇集了企业内部问题的案例集,...
H3C 无线产品常见问题案例集 H3C 无线产品故障处理手册 H3C 无线产品日常维护指导书 WLAN空口常用维护命令及故障定位 无线产品基本维护命令 无线产品维护手册之—无线产品常见问题处理指导手册 无线维护“指南...
IT运维日常运维管理制度是确保企业IT系统稳定运行的关键,它涵盖了多个方面,旨在预防和解决可能出现的问题,保证业务连续性和数据安全性。以下是该制度的主要内容: 1. **运维保障机制**: - **日常维护流程**:...
### Oracle DBA必备日常维护问题大全 #### 一、Oracle DBA 日常操作与命令 **1. 连接数据库** - 使用 `tnsping` 检测网络连接是否正常: ``` c:>tnsping ora9 ``` - 使用 `sqlplus` 连接到数据库: ``` c:>...
本数据集,名为"中英文QA数据集主要包含生活常识以及计算机技术QA",是一个专门收集自问答网站的资源,涵盖了广泛的生活常识问题和计算机技术问题,旨在为这些领域的问答系统开发提供训练素材。 首先,让我们深入...
《常用算法程序集(C 语言描述)第四版》是由徐士良编著的一本深入探讨C语言实现算法的书籍,特别适合于那些希望在实际工程中应用算法的读者。这本书精心组织了各种常用且高效的算法,旨在帮助读者理解和掌握算法的...
Oracle数据库字符集问题总结主要关注的是在数据迁移和交互时由于字符集差异导致的问题。字符集是决定数据库如何解释...在日常数据库管理和维护中,确保所有环境的字符集一致性至关重要,尤其是在进行跨系统数据交互时。
日常维护脚本对于确保数据库高效、稳定运行至关重要。京华志(www.jinghuazhi.com)提供的SQL Server数据库日常维护脚本合集,旨在帮助数据库管理员(DBA)有效地执行一系列关键任务,包括但不限于性能监控、数据备份...
域控制器处理用户登录、资源访问和权限分配等一系列任务,因此在日常操作中可能会遇到各种问题。下面我们将详细探讨一些在域控管理中常见的挑战以及相应的解决方法。 首先,关于Outlook 2003的日文文字和中文不兼容...
1. 轻度痴呆:这是阿尔茨海默氏病的早期阶段,患者可能已经出现记忆问题,但日常生活能力尚可维持。 2. 中度痴呆:疾病进展至中期,患者会出现更严重的认知障碍,包括语言理解困难、定向障碍,日常生活需要他人协助...
【标题】"面板常见问题集.rar" 涵盖了有关计算机硬件、操作系统以及软件应用等方面的常见问题,主要针对用户在使用过程中遇到的各种面板相关问题。这个压缩包可能包含了详细的解答、故障排查步骤以及解决方案,旨在...
EAS总账应用问题集2013是一份关于金蝶EAS总账模块在实际应用中出现问题的汇总文档,涵盖了初始化、凭证处理、账簿、财务报表、往来管理、期末处理以及现金流量等多方面的常见问题和解决方案。这份文档对于使用金蝶...
涵盖了银行日常运营中的各种问题,包括但不限于账户管理、交易查询、贷款申请、信用卡服务、投资理财等多个方面。这样的全面性使得数据集能够支持深度学习模型对银行知识的广泛理解和精准应答,从而提升问答系统的...
这些类别包括飞机、汽车、鸟类、猫、鹿、狗、青蛙、船和卡车,它们覆盖了日常生活中常见的物体。 一、CIFAR10数据集概述: CIFAR10由Alex Krizhevsky、Ilya Sutskever和Geoffrey Hinton共同创建,是CIFAR-100数据集...
机器人视觉抓取数据集Jacquard V2是一个广泛用于机器人学习和...通过深入理解和有效利用Jacquard V2数据集,研究者可以开发出更加智能、适应性强的机器人抓取系统,进一步推动机器人技术在日常生活和工业场景中的应用。
本"Oracle问题集"包含了一系列与Oracle相关的常见问题及其解决方案,旨在帮助用户解决在安装、配置、管理和使用Oracle数据库过程中遇到的问题。 首先,让我们深入探讨Oracle的安装过程。Oracle数据库的安装涉及多个...