Tag: struts2

如何在Struts 2中使用没有后缀的URL(例如.action)?

这就是我需要的东西,我不仅需要使用我的.war来提供java,还需要一些javascript文件。 所以e,g。 如果有人去了url: example.com/js/foo.jar 然后我需要将其正确地作为javascript文件提供。 同时,如果有人去: example.com/bar 我需要将Struts2作为可能的控制器来提供服务。 我在网上发现的从url中删除后缀的方法会导致两个URl由struts 2提供(因此即使它存在,也会给第一个foo.js文件带来错误)。 是否有一种方法(如拦截器)在发出错误之前首先检查给定的.js文件是否存在?

使用Jquery Ajax将数据从jsp发送到struts2操作类

我需要使用jquery Ajax将表单数据从jsp传递到struts2,并从Struts2操作类接收JSON数据。 我已经给出了下面的代码。 当我传递AJAX数据时, url:’search.action?searchText=’+ $(‘searchValue’).value+’&environment=’+$(‘environmentSelect’).value 传递“undefined”而不是从jsp到action类的orijinal值。 我的JSP Environment: 1 2 3 Search Value: Search 我的Ajaxfunction是: $(“#searchButton”).on(“click”,function(){ console.log(“Inside Ajax call = “+ $(‘#tab0’)); $.ajax({ type: ‘POST’, url:’search.action?searchText=’+ $(‘searchValue’).value+’&environment=’+$(‘environmentSelect’).value, dataType: ‘json’, success: function(data){ console.log(stringify(data)); s=data…. } document.getElementById(‘displayLog’).innerHTML=s; }); return false; }); struts.xml中: /jsp/dummy.jsp /jsp/search.jsp 行动类: public class SearchAction extends ActionSupport { /** * */ private static […]

REST和非RESTful URL的Together不起作用

我试图获得两者的实际示例,纯粹的restful配置和至少一个非restful URL失败了。 我有这个页面作为指南: https : //cwiki.apache.org/confluence/display/WW/REST+Plugin 我有一个模型,带有几个测试字段的Receipt 。 纯REST解决方案按预期工作,所以这样做: 适用于以下结果: receipt.json =>显示所有收据的列表 receipt/1.json =>显示id = 1的收据 但是如果我尝试将restful与非restful URL混合在一起(就像我在wiki文章中所说的那样),就像这样: 它爆炸了: Struts has detected an unhandled exception: Messages: com.immaculate.receipto.controllers.ReceiptController.execute() File: java/lang/Class.java Line number: 1,778 我很迷惑。 为什么要搜索execute()? execute()应该是动作中存在的方法。 我没有给它一个动作,我给它一个像以前一样的控制器。 我该如何解决? 这是ReceiptController : public class ReceiptController implements ModelDriven { private ReceiptManager receiptManager = new ReceiptManager(); private String id; private […]

拦截器的invocation.invoke()之后没有填充Struts 2动作变量

我的问题是,在使用invocation.invoke从拦截器触发动作的变量后,它们不会被填充。 我所知道的是,在使用拦截器之前,它工作正常(从.jsp我提交了一个表单并调用了一个动作,并填充了每个变量) 拦截器类: public String intercept(ActionInvocation invocation) throws Exception { final ActionContext context = invocation.getInvocationContext(); HttpServletRequest request = (HttpServletRequest) context.get(HTTP_REQUEST); HttpSession session = request.getSession(true); Object user = session.getAttribute(Constants.USER_HANDLE); if (user == null) { String signUp = request.getParameter(Constants.SIGN_UP); if (!StringUtils.isBlank(loginAttempt)) { if (processLoginAttempt(request, session)) { return “login-success”; } } else if (!StringUtils.isBlank(signUp)) { return invocation.invoke(); } […]

Struts2和Tiles:当apache.org关闭时,我的webapp无法启动

我正在构建一个使用磁贴的Struts2 Web应用程序但是我发现了一个非常令人沮丧的问题,即如果apache.org关闭(这似乎经常发生)Web应用程序无法启动。 这是因为在其标准设置中,StrutsTilesListener尝试加载tiles defenitions文件,该文件包含一个带有public-id的DOCTYPE,该公共id指向位于tiles.apache.org上的DTD。 当应用程序启动时,定义文件使用Apache Xerces通过Apache Commons Digester加载,它尝试从tiles.apache.org加载DTD但是如果apache.org关闭则会失败,并且随之而来的是整个Web应用程序无法启动。 我可以通过下载文件并将其置于本地并在struts定义文件中指定新的本地位置来绕过远程位置的下载,但是这个解决方案不是非常便携,因为DTD在本地保存的位置可能会有所不同开发人员机器和不同的一旦上传到实时环境,所以我将不得不继续编辑位置,以便运行webapp运行的机器,这简直是烦人的。 项目中没有其他xml文件存在此问题,包括struts.xml文件,该文件在apache.org上也有一个DTD位置,因此很明显存在一个设置问题,其中Tiles严格要求DTD但其他组件不是。 这有什么解决方案吗? 我已经没有耐心了,我不能把这个网络应用程序告知,如果apache.org在重新启动时关闭,webapp将不会恢复。 Struts tile defenition文件 当apache.org关闭时,堆栈跟踪 SEVERE: Exception sending context initialized event to listener instance of class org.apache.struts2.tiles.StrutsTilesListener java.lang.IllegalStateException: Unable to instantiate container. at org.apache.tiles.web.startup.TilesListener.contextInitialized(TilesListener.java:60) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native […]

如何使用jQuery将JSON数据发布到Struts2 Action类

我在将数据从jQuery发送到struts2动作类时遇到了问题。 我已经看到了一个问题: JSON Jquery对Struts2的操作,但我不太了解解决方案。 这是我的问题: json数组是这样的: [{“id”:”1″,”code”:”111″,”name”:”ddd”}, {“id”:”2″,”code”:”222″,”name”:”sss”}, {“id”:”3″,”code”:”333″,”name”:”eee”}] 我想将json数据发送到struts2动作类。 jQuery代码是这样的: var data = JSON.stringify(dataObj); $.ajax({ url: “Update”, type: “post”, data: data, dataType: ‘json’, contentType:”application/json;charset=utf-8″, success : function(){ alert(“You made it!”); } }); 但是,在Chrome的开发工具中,我已经看到了提交给服务器端的数据。 但在服务器端,我不知道如何接收json数据。 行动: public class Update extends ActionSupport{ private String data; public String getData(){ return data; } public void setData(String data){ this.data= […]

struts2修剪从表单中获取的所有字符串

我使用struts2开发Web应用程序。 我想改进从表单中获取字符串。 为此需要修剪所有字符串,如果获得的字符串为空,则将null设置为field。 为此,我创建了StringConverter 。 public class StringConverter extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] strings, Class toClass) { if (strings == null || strings.length == 0) { return null; } String result = strings[0]; if (result == null) { return null; } result = result.trim(); if (result.isEmpty()) { return null; } return […]

如何在Struts 2中显示数据库记录列表(通过Hibernate检索)到JSP页面?

我正在尝试使用Hibernate将数据库记录显示在Struts 2中的JSP页面中。 我成功完成了检索部分。 但无论我做什么,我似乎都无法在JSP页面中显示数据。 我试过在互联网上找到各种解决方案。 但无法理解什么似乎是问题。 我可以看到表列名,但它没有数据。 我在用户POJO课程中拥有所有必需的getter和setter。 我附上了我的代码: 注册行动: public class RegisterAction extends ActionSupport{ String name,pwd,email,address; int phno; public RegisterAction() {} List users = new ArrayList(); UserDao udao = new UserDao(); //Getters and setters. public String execute() throws Exception { User u=new User(); u.setName(name); u.setEmail(email); u.setAddress(address); u.setPhno(phno); u.setPwd(pwd); udao.addUser(u); return “success”; } public String […]

Struts 2参数编码问题在重定向到另一个动作期间

我尝试重定向到另一个动作并传输一个字符串参数。 这没有问题,但如果我使用德语变音符号,我会遇到编码问题。 这是我的代码:第一个动作有一个带有getter和setter的字段消息。 在动作中我设置了String。 private String message; public String action1() { message = “ö”; return SUCCESS; } 第二个动作也有一个带有getter和setter的字段消息。 private String message; Struts.xml定义了这两个动作 action2 ${message} /pages/showMessage.jsp 如果我不使用重定向并在jsp上显示消息,那么一切正常。 编码是正确的。 如果我重定向到另一个动作,则消息字段的setter设置错误的formattet字符串“ö”。 我找不到解决方案。 有人可以帮帮我吗? 自己的filter: CharacterEncodingFilter de.samba.control.CharacterEncodingFilter CharacterEncodingFilter *.action 筛选级 public class CharacterEncodingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain next) throws IOException, ServletException { […]

MVC中的Push vs Pull模型

MVC的推拉模型有什么区别? 是Struts2,Spring MVC Pull基础吗?