Tag: struts2

在Struts2中为不同的操作方法更改Form的操作属性

我在JSP页面名称add.jsp创建了一个from来保存这样的数据 显示此视图的操作方法如下 public String addDomainPage() { return ActionSupport.SUCCESS; } 我创建了另一个列出所有域的页面,并提供了编辑链接来编辑任何域。 使用时单击编辑URL,将调用此操作 public String loadDomain() { HttpServletRequest request = ServletActionContext.getRequest(); String url = request.getParameter(“durl”); IDPBroker broker = new IDPBroker(); idp = broker.getDomainByURL(url); return ActionSupport.SUCCESS; } 成功完成操作后,我将显示add.jsp页面。 Struts填充JSP页面中的数据。 现在,问题是我想要更改form标签的action属性的值。 我还想将value of submit button的value of submit button更改为“编辑”。 我计划在Action类中创建一些私有attribute(action,Label) ,当调用addDomainPage动作时,我将根据添加页面更改这些属性的值。 与loadDomain操作类似。 现在我不知道如何做到这一点意味着如何在视图中使用这些私有属性。 告诉我,我做得正确,下一步做什么?

Web Java变量重置

我使用Java中的Ajax创建了Hibernate和Struts 2的网站。 基本上,当我创建时,修改任何本地内容(在.java中),比如将值赋给int ,在下次检查时为null 。 每次都会发生这种情况 这是struts.xml我的大部分页面都以这种方式出价: /MyAccount.jsp 客户端只是一个实现了CRUD的bin类: public class Client extends ActionSupport { private static final long serialVersionUID = 1L; private Long idClient; private String login; private String password; private String nom; private String prenom; private String adresse; private String ville; private int cPostal; private String email; private Set panier = new HashSet(0); […]

当我使用Struts 2通配符配置时如何返回404错误?

我正在使用struts 2构建一个网站。 这是我的“struts.xml”的剪辑: /Pages/myresult.jsp 现在,我遇到了一个问题。 当我访问我没有设计的动作时,例如“aaabbb”,服务器将返回500错误。 由于通配符配置,struts 2将尝试调用类“com.domain.actions.UserAction”的“aaabbb”方法,但“aaabbb”方法不存在。 但是,从逻辑上讲,返回404错误更好。 如何在这些情况下返回404错误并同时使用通配符配置?

使用Struts 2内置JSON实用程序类

在Struts 2项目中,我们需要序列化和反序列化对象,因为我们的要求非常简单,我们决定使用Struts 2 JSONUtil而不是gson 。 import org.apache.struts2.json; String json = JSONUtil.serialize(myAccountVO); // return: {“accountNumber”:”0105069413007″,”amount”:”1500″,”balance”:”215000″} 对于deserialization ,我们面临class cast exception AccountVO vo =(AccountVO) JSONUtil.deserialize(json); //Exception 我发现deserialization返回一个带有对象属性键值的映射。 所以我必须这样做: HashMap map = (HashMap) JSONUtil.deserialize(string) accountVo.setAccountNumber(map.get(“accountNumber”)); …. 我可以做得更好,或者我对这个实用程序的期望太高了。

Ajax错误struts2?

我有我的动作课: try{ tspNameIdMap = slsReqMgmtCommonRemote.getTspNameIdMap(Integer.parseInt(circleId)); throw new ReqMgmtException(“Message test”); } catch(ReqMgmtException rEx){ addActionError(“Action-Error: Request Management Exception thrown”); return ERROR; } 我正在进行AJAX调用并使用Struts2-Json-plugin以JSON格式获取tspNameIdMap 。 JS:AJAX的一部分: success: function(data){ alert(‘Updated DB’); }, error: function(data){ alert(data); } 我的struts.xml : tspNameIdMap 我想在我的Ajax错误函数中使用addActionError消息。 我还想在我的JSP中显示它。 我怎么能得到这个? Ps:我是否必须在属性文件中包含此ActionError消息? 我是第一次使用它。 帮帮我 编辑 :当我跟着@Prabhakar回答我得到了错误消息,但它在AJAX调用success时返回。 另一个问题是,当我把它放在我的JSP中时, actionerror没有显示出来。 JSP:

使用Hibernate将下拉列表值保存到Struts 2中的数据库

我想将下拉列表的选定值保存到数据库中。 首先加载index.jsp 。 从index.jsp ,当我们点击index.jsp注册URL时,我们可以去register.jsp 。 struts.xml : register.jsp login.jsp index.jsp : Register register.jsp : 动作类是: public class RegisterAction extends ActionSupport { String name, pwd, email, address, months; int phno; List allMonths = new ArrayList(); List users = new ArrayList(); UserDao udao = new UserDao(); public List getAllMonths() { return allMonths; } public void setAllMonths(List […]

维护行动变量的值?

class SampleAction extends ActionSupport { private Map circleIdNameMap; public String preprocess(){ –logic for populating value of MAP } –getters and setters } 现在我的问题是页面加载我调用preprocess函数并填充Map的值。 在页面提交之后调用另一个方法,在此之后,在一些数据库交互之后,它会重定向到JSP,但这次Map值为空。 我在Struts2中使用这个Map for drop-down标签。 我的preprocess在链接中关联,如: href=”/gma/preprocessConfigureTspThreshold?operatorId=5102&sessionId=12332″‌`​ 因此,只有在第一次单击链接时才会调用preprocess ,之后当我重定向到我的JSP时,因此它不被调用,所以第二次Map值为空。 我应该将地图放在会话中以便保留吗? 或者可以做点什么? 我读过不使用preprocessfunction,使用Preparable接口。 但按照文档: struts 2框架的准备拦截器将始终调用prepare方法 每当为Action类调用任何方法时。 因此,每个方法都会调用它。 我希望只在页面加载时调用preprocess 。

SQLGrammarException:无法执行查询

我正在使用Struts2和Hibernate并在使用字符串test搜索数据时遇到错误,但在使用数字111搜索时对我有用。 我从bean类中获取此值,并在bean类中定义了字符串类型的属性。 下面我提供的代码: public String retrieveRecords() { String empId = p.getEmpId(); String paramValue = “”; if(empId !=null) if(!(empId.isEmpty())) paramValue =” where b.empId=”+empId; String empName = p.getEmployeeName(); if(empName !=null && empName != “”) { if(!(empName.isEmpty())){ if(paramValue == “”) paramValue =” where b.employeeName=”+empName; else paramValue =paramValue + ” and b.employeeName=”+empName; } } System.out.println(“=========paramvalues====”+paramValue); recList = (List) session.createQuery(“from […]

在应用程序范围设置变量,以便在会话中共享

我正在使用带有Spring插件的Struts2。 我想设置一个变量值,它将在所有不同的会话中共享。 它只是一个字符串值,但如果一个会话更改它,我希望更改的值可用于所有会话。 最好的方法是什么? 代码示例将很棒。

在scriptlet数组索引中访问struts迭代器的索引值

我是网络开发的新手。 使用Struts2,我有一个逗号分隔的我的图像标题String 。 在JSP上迭代要渲染的图像时,我需要显示标题以及特定图像,并且无法获得任何特定标记以将标题String拆分为分隔符并访问特定标题。 我正在尝试下面的代码,不知道用什么来代替迭代器中的当前迭代索引。 我知道不建议在JSP中使用scriptlet和表达式标签,但我不知道如何避免它。 任何帮助将不胜感激。