Struts2 - 从 JSP 访问 Action 变量
Struts2 - Access from JSP to Action variables
我在使用 Struts2 时遇到了一点问题,我不知道为什么它不起作用...
我想通过一个动作在两个 JSP 之间传递 2 个变量 class :
view1.jsp :
<s:form action="myAction">
<input id="var1" name="var1" type="text" />
<input id="var2" name="var2" type="text" />
<button type="submit"> Ok </button>
</s:form>
-> var1 和 var2 是我要传递给 Action 的变量 class
struts.xml:
<action name="myAction" class="MyAction" method="execute">
<result name="success">view2.jsp</result>
</action>
Action.java :
public class MyAction extends DefaultActionSupport
{
private String var1;
private String var2;
public String execute() throws Exception
{
// ... Some actions ...
return SUCCESS;
}
// Getters & Setters for var1 and var2 (generated by Eclipse)
public String getVar1()
{
return var1;
}
public void setVar1(String var1)
{
this.var1 = var1;
}
public String getVar2()
{
return var2;
}
public void setVar2(String var2)
{
this.var2 = var2;
}
-> 这工作正常;如果我将 "System.out.print" 与 getter 放在一起,它会显示 var1 (content1) 和 var2 (content2)
的良好值
view2.jsp :
Values of var1 = <s:property value="var1" />
Values of var2 = <s:property value="var2" />
Textfield with var1 in default-value : <s:textfield value="%{var1}" />
Textfield with var2 in default-value : <s:textfield value="%{var2}" />
-> 这里有一个问题:
我无法获取 var1 和 var2 的内容!
-> <s:property value="var1" />
和 <s:textfield value="%{var1}
返回 "null"
我的错误在哪里?不懂。。。我按照网上说的看。。。
谢谢!
我终于找到了问题的答案!
要获得 var1
和 var2
的值,我必须使用以下几行:
view1.jsp :
<s:form action="myAction">
<input id="var1" name="var1" type="text" />
<input id="var2" name="var2" type="text" />
<button type="submit"> Ok </button>
</s:form>
struts.xml:
<action name="myAction" class="MyAction" method="execute">
<result name="success">view2.jsp</result>
</action>
Action.java :
public class MyAction extends DefaultActionSupport{
private String var1;
private String var2;
public String execute() throws Exception{
// ... Some actions ...
ActionContext.getContext().getSession().put("var1", getVar1());
ActionContext.getContext().getSession().put("var2", getVar2());
return SUCCESS;
}
// Getters & Setters for var1 and var2 (generated by Eclipse)
public String getVar1(){
return var1;
}
public void setVar1(String var1){
this.var1 = var1;
}
public String getVar2(){
return var2;
}
public void setVar2(String var2){
this.var2 = var2;
}
}
view2.jsp :
Values of var1 = <s:property value="#session.var1" />
Values of var2 = <s:property value="#session.var2" />
//To transform var1 and var2 into JSP variables :
<s:set var="var1 " value="#session.var1 " />
<s:set var="var2 " value="#session.var2" />
<jsp:useBean id="var1 " type="java.lang.String" />
<jsp:useBean id="var2 " type="java.lang.String" />
<%
String myString1 = var1;
String myString2 = var2
%>
我在使用 Struts2 时遇到了一点问题,我不知道为什么它不起作用...
我想通过一个动作在两个 JSP 之间传递 2 个变量 class :
view1.jsp :
<s:form action="myAction">
<input id="var1" name="var1" type="text" />
<input id="var2" name="var2" type="text" />
<button type="submit"> Ok </button>
</s:form>
-> var1 和 var2 是我要传递给 Action 的变量 class
struts.xml:
<action name="myAction" class="MyAction" method="execute">
<result name="success">view2.jsp</result>
</action>
Action.java :
public class MyAction extends DefaultActionSupport
{
private String var1;
private String var2;
public String execute() throws Exception
{
// ... Some actions ...
return SUCCESS;
}
// Getters & Setters for var1 and var2 (generated by Eclipse)
public String getVar1()
{
return var1;
}
public void setVar1(String var1)
{
this.var1 = var1;
}
public String getVar2()
{
return var2;
}
public void setVar2(String var2)
{
this.var2 = var2;
}
-> 这工作正常;如果我将 "System.out.print" 与 getter 放在一起,它会显示 var1 (content1) 和 var2 (content2)
的良好值view2.jsp :
Values of var1 = <s:property value="var1" />
Values of var2 = <s:property value="var2" />
Textfield with var1 in default-value : <s:textfield value="%{var1}" />
Textfield with var2 in default-value : <s:textfield value="%{var2}" />
-> 这里有一个问题:
我无法获取 var1 和 var2 的内容!
-> <s:property value="var1" />
和 <s:textfield value="%{var1}
返回 "null"
我的错误在哪里?不懂。。。我按照网上说的看。。。
谢谢!
我终于找到了问题的答案!
要获得 var1
和 var2
的值,我必须使用以下几行:
view1.jsp :
<s:form action="myAction">
<input id="var1" name="var1" type="text" />
<input id="var2" name="var2" type="text" />
<button type="submit"> Ok </button>
</s:form>
struts.xml:
<action name="myAction" class="MyAction" method="execute">
<result name="success">view2.jsp</result>
</action>
Action.java :
public class MyAction extends DefaultActionSupport{
private String var1;
private String var2;
public String execute() throws Exception{
// ... Some actions ...
ActionContext.getContext().getSession().put("var1", getVar1());
ActionContext.getContext().getSession().put("var2", getVar2());
return SUCCESS;
}
// Getters & Setters for var1 and var2 (generated by Eclipse)
public String getVar1(){
return var1;
}
public void setVar1(String var1){
this.var1 = var1;
}
public String getVar2(){
return var2;
}
public void setVar2(String var2){
this.var2 = var2;
}
}
view2.jsp :
Values of var1 = <s:property value="#session.var1" />
Values of var2 = <s:property value="#session.var2" />
//To transform var1 and var2 into JSP variables :
<s:set var="var1 " value="#session.var1 " />
<s:set var="var2 " value="#session.var2" />
<jsp:useBean id="var1 " type="java.lang.String" />
<jsp:useBean id="var2 " type="java.lang.String" />
<%
String myString1 = var1;
String myString2 = var2
%>