Tag: ognl

如何使用ognl更改会话范围属性?

是否可以使用ognl更改会话范围属性? 例如,如果我在会话中有一个名为PROCESS_CONFIG的属性,它是一个具有属性name的对象,那么如何在JSP上更改此属性name ? 我尝试了以下但它不起作用: 当我提交表单并在我的操作中访问会话对象时,通过ServletActionContext.getRequest().getSession().getAttribute(“PROCESS_CONFIG”) ,属性name没有改变。 编辑: 在会话中保存为PROCESS_CONFIG的对象是一个非常深的复杂对象(由对其他对象的大量引用组成,包含对象列表),在我的视图中,我只想呈现其属性的一个非常小的子集 (包括来自的属性)它的组成对象)。 因此,将所有其他字段隐藏在我的JSP中是不切实际的! 有问题的视图是一个可以更改这些字段值的表单,我希望直接并自动更新我的struts 2会话上保存的对象PROCESS_CONFIG ,就像PROCESS_CONFIG对象是我的操作的属性一样。 例如,给定前面的代码片段, PROCESSNAME是PROCESS_CONFIG对象的一个​​属性,我想在PROCESS_CONFIG对象中自动更新它,而不是在我的操作上有一个PROCESSNAME属性,然后必须在我的PROCESS_CONFIG对象上显式设置PROCESSNAME 。

设置表达式’spa.amount’时出错,值为'[Ljava.lang.String; @ 10dd65e’)

我正在尝试使用代码来获取spa对象字段中的数据。 因此,我使用以下代码,但它显示null值并给出以下错误 Error setting expression ‘spa.amount’ with value ‘[Ljava.lang.String;@10dd65e’ ognl.OgnlException: target is null for setProperty(null, “amount”, [Ljava.lang.String;@10dd65e) Jsp代码: 0″> Amount Payment Date Payment Mode 我的动作类 package iland.payment; import static com.opensymphony.xwork2.Action.SUCCESS; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import iland.hbm.SupplierPaidDetails; public class hbmCashAction extends ActionSupport implements ModelDriven { SupplierPaidDetails spa = new SupplierPaidDetails(); public SupplierPaidDetails getSpa() { return spa; […]

Struts 2“%”符号和“#”符号表示OGNL

任何人都可以告诉我如何在STRUTS2 OGNL中使用“%”和“#”符号? 我谷歌周围,但找不到任何有价值的信息。或者给我一个文档的链接。 谢谢

使用OGNL 在Struts 2中使用2个操作参数创建动态URL

如果我有一个url: www.myurl.com/books并希望能够通过传递Sartre和1942作为参数来创建新的过滤作者和年份: www.myurl.com/books/Sartre/1942到动作类,它将使书页显示适当的结果。 如何在Struts2中执行此操作? 我有后端逻辑,所以如果: 我可以重用与永久链接www.myurl.com/books使用的相同的jsp和动作类。 即使在get请求加载了页面之后, www.myurl.com/books/Sartre/1942在地址栏中显示动态呈现的URL www.myurl.com/books/Sartre/1942 (即www.myurl.com/books )。

使用Struts 2从JSP重新填充ArrayList

这是我用来重新填充ArrayList 这是动作类 public class QuizTest extends ActionSupport{ public String execute(){ List q= myQuestions; System.out.println(myQuestions); return “success”; } public String populateQuestions(){ //more code here } public void setMyQuestions(List myQuestions) { this.myQuestions = myQuestions; } private List myQuestions = new ArrayList(); } 其中myQuestions是问题对象列表。 提交后,这给了我一个错误 Unexpected Exception caught setting ‘quizItem.question’ on ‘class quiz.actions.QuizTemplateAction: Error setting expression ‘quizItem.question’ with […]

如何在Struts 2中的Set集合中插入值

我正在使用Struts2做一个项目,我在分配集合时遇到问题。 这是我的行动(我删除了无关的部分) public class TeamAction extends BaseAction implements ModelDriven { Team team=new Team(); } 这是我的模特Team (我删除了不相关的部分) private TeamId id; private Set students = new HashSet(0); 这是我的JSP部分 现在问题是我无法通过ModelDriven将正确的值插入此Set集合中,它将抛出exception。 你能告诉我在JSP文件中写什么,所以我可以在我的模型中为Set集合插入一个值吗?

使用struts 2 form对象编辑对象的ArrayList

我有2个class – Student和Course 。 两者都在其内部的属性上定义了所有getter和setter。 使用这两个类,我正在尝试构建一个Web应用程序,其中包含编辑和在不同jsp页面中添加学生等常规function。 我的学生可以注册多个课程,每个学生的每门课程的分数都应该可以在应用内编辑。 现在我有一个studentMarks.jsp ,它从一个动作类加载数据 – StudentAction public class StudentAction extends ActionSupport { private static final long serialVersionUID = 1L; private List studentList; private List courseList; private HashMap<Student,List> studentCourseList; private int rollNo; private String name; private String DOB; StudentService studentService; CourseService courseService; Student student; Course course; /**** Setters and getters for […]

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 … } 有谁能够帮助我?

通过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; } } […]