簡體   English   中英

Struts2-從JSP訪問Action變量

[英]Struts2 - Access from JSP to Action variables

我對Struts2有點問題,我不知道為什么它不起作用...

我想通過Action類在兩個JSP之間傳遞2個變量:

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類的變量

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”與吸氣劑放在一起,它將向我展示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”

我的錯誤在哪里? 我不明白...我聽了別人在互聯網上說的話...

謝謝 !

我終於找到了解決我問題的方法!
為了獲得var1var2的值,我必須使用以下幾行:

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
%>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM