Tag: struts2

Struts + Hibernate:@SessionTarget无效

我正在使用struts2-fullhibernatecore-plugin-2.2.2-GA.jar在我的DAO类中注入一个session ,如下所示: public class UserDAO { @SessionTarget Session session; @TransactionTarget Transaction transaction; public List getUsers() { return session.createQuery(“from user”).list(); } } 但是我得到了 java.lang.NullPointerException com.wudi.DAO.UserDAO.getUsers(UserDAO.java:28) com.wudi.action.UserListAction.execute(UserListAction.java:24) 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) … 根据调试输出, UserDAO中的session和transaction为null 。 一些文件供参考: User.java : @Entity @Table(name = “user”) public class User implements Serializable { @Id @GeneratedValue private int id; @Column private String […]

Struts Web应用程序:可重用的validation客户端和服务器端

我们的Struts应用程序复制了许多表单的validation检查:(1)jQuery / JS中的客户端,以及(2)Java中的服务器端。 我问我的主角为什么,他说“你永远不能相信客户端。” 但另一方面,为方便起见,他希望在浏览器中提供JS / jQueryvalidation。 有很多冗余代码。 在双方都有可重复使用的validation的正确策略是什么? 这些天人们手动复制客户端/服务器端validation吗?

在Struts 2中传递URL中没有查询字符串的参数

我喜欢使用host/ActionName/123/abc/这样的URL,而不是像host/ActionName?parm1=123&parm2=abc那样传递查询字符串host/ActionName?parm1=123&parm2=abc 。 我怎么能在Struts2中做到这一点? 我完成如下。 但它不起作用,显示500错误代码 {1} views.jsp

Struts 2动态变量

我正在尝试使用set标签在Struts2中创建一个动态变量 numConst将返回从数据库中检索的动态值。 例如,如果值为NINE,则数字应为@xxx.CommonConstant@NINE 我在我的java类中设置了值,以便@xxx.CommonConstant@NINE将返回9 。 到目前为止,如果我使用的话,可以在文本标签中显示该值没有问题 当我尝试使用属性标记时,它将返回9但显示不正确 以上所有示例都将为我提供@xxx.CommonConstant@NINE的值。 我尝试从属性标记中获取值的原因是因为我想要复制正确的方法来显示值,以便我可以在if标签中使用它们,如下例所示: do something 要么 do something CommonConstant: package xxx; public abstract class CommonConstant { public static final int NINE = 9; public static final int NINEONE = 91; public static final double ADMIN_PGM = 1.4; // … omitted … } 有谁能够帮助我?

在我的网络应用程序中从spring获取“未找到线程绑定请求”错误

我在我的网络应用程序中收到“未找到线程绑定请求”错误,并希望得到一些帮助。 我正在尝试使用struts2 + spring + hibernate,并使用spring来管理hibernate会话工厂,并将hibernate会话注入我的struts操作。 我希望这是有道理的。 当应用程序启动时,没有错误,但是当我发出第一个Web请求时,它会弹出“未找到线程绑定请求”错误。 这是我的春季配置: 这是我的行动: package actions.events; import org.hibernate.Session; public class Listing { Session session; public void setHibernateSession(Session value) throws Exception { session = value; } public String execute() { return “success”; } } 我唯一的领导是,如果我删除上面的’setHibernateSession’函数,我不会得到错误,因为如果动作不需要一个(懒惰的实例化),假设spring不打扰创建会话。 这是例外: Unable to instantiate Action, actions.events.Listing, defined for ‘Listing’ in namespace ‘/events’Error creating bean with […]

如何使用Struts2创建自定义URL?如www.twitter.com/goodyzain

我正在开发一个项目,我希望为每个用户提供唯一的URL。 例如, http://www.SocialNetwork.com/jhon , http://www.SocialNetwork.com/jasmine, 到目前为止,我能够做到这一点: http://www.SocialNetwork.com/profiles/jasmine : http://www.SocialNetwork.com/profiles/jasmine这里的配置文件是我的行动,我可以通过以下方式获取用户名 /WEB-INF/jsp/profile.jsp 但我希望实现像这样的东西, http://www.SocialNetwork.com/jasmine //www.SocialNetwork.com/jasmine只需域名然后用户名。 像twitter一样: www.twitter.com/username 怎么做到这一点?

高级通配符映射在Prepare()方法中找不到参数

从文档中: Struts2的高级通配符映射 : 高级通配符 从2.1.9+开始,可以在动作名称中定义正则表达式。 要使用这种forms的通配符,必须设置以下常量: 正则表达式可以有两种forms,最简单的是{FIELD_NAME} ,在这种情况下,操作中具有FIELD_NAME的字段将填充匹配的文本,例如: /books/content.jsp 在此示例中,如果请求url /fiction/content/Frankenstein ,则BookAction的字段“ type ”将设置为“ fiction ”,字段“ title ”将设置为“ Frankenstein ”。 这绝对是好的,如果你在常规的Action方法中读取这些变量就行了,如execute() 。 如果您尝试从prepare()方法中读取它们,则它们为null,因为PrepareInterceptor在其他负责设置参数的Interceptor之前运行; 解决此问题的常用方法是使用适当的拦截器堆栈来获取在执行prepare()方法时已经填充的参数… 从文档: ParamsPrepareParamStack 这适用于来自页面的参数,但它不适用于Advanced Wildcards设置的参数 。 它们仍然是空的。 如何解决这个问题?

如何在Struts 2中进行动态URL重定向?

我正在尝试将我的Struts2应用程序重定向到生成的URL。 在这种情况下,我希望URL使用当前日期或我在数据库中查找的日期。 所以/section/document成为/section/document/2008-10-06 最好的方法是什么?

通过Struts 2中的ModelDriven将参数传递给操作

该问题与ModelDriven和Struts 2.3.16有关。 由于params拦截器的行为更改为访问传递给操作的参数,因此需要配置acceptParamNames列表以与ModelDriven操作一起使用。 如果acceptParamNames列表为空,则默认情况下通过默认模式接受params。 假设我们有一个 ModelDriven动作: @Namespace(“/modelDriven”) public class ModelDrivenAction extends ActionSupport implements ModelDriven { private Gangster model = new Gangster(); private String name; //getter and setter public Object getModel() { return model; } @Actions({ @Action(value=”modelDriven”, results=@Result(location = “/modelDriven/modelDriven.jsp”)), @Action(value=”modelDrivenResult”, results=@Result(location = “/modelDriven/modelDrivenResult.jsp”)) }) public String execute() throws Exception { model.setName(name); return SUCCESS; } } […]

web.xml中的白名单安全性约束

我正在使用Tomcat作为我的Struts2应用程序。 web.xml有一些条目,如下所示: restricted methods /* PUT DELETE TRACE no_access /jsp/* no_access /myrrunner/* 如何更改以上列入黑名单的部分仅使用白名单部分…例如,我不需要将其他方法列入白名单,而是将其列入白名单,但我不确定将白名单列入白名单的语法以及将白名单列入白名单的方法。 对于我上面的web.xml片段,如果有人可以为xml以上提供whitelisitng计数器部分,我将不胜感激。 编辑:另外,我如何真正validation解决方案是否有效? 谢谢