2015年8月31日 星期一

結合VO的問題 (Struts2.3.x 四)

再寫一個頁面來測試:
VO:
public class Chess {
    private String name;
    private int price;
    private Date date;
    //setter/getter...
}

Action:
public class ChessAction extends ActionSupport {
    Chess chess = new Chess();
    //setter/getter...
    @Override
    public String execute() throws Exception {
        System.out.println("getName=" + chess.getName());
        System.out.println("getPrice=" + chess.getPrice());
        System.out.println("getDate=" + chess.getDate());
        return SUCCESS;
    }
}

struts-a.xml多一個action
<package name="basicstruts2" extends="struts-default" namespace="/struts2">
    <action name="login" class="login.LoginAction">
        <result name="success">/struts2/login.jsp</result>
        <result name="input">/struts2/login.jsp</result>
    </action>
    <action name="chess" class="login.ChessAction">
        <result name="success">/struts2/chess.jsp</result>
        <result name="input">/struts2/chess.jsp</result>
    </action>
</package>

chess.jsp
<form action="chess.action">
    <input type="text" name="chess.name" value="Johnson" /><br />
    <input type="text" name="chess.price" value="50" /><br />
    <input type="text" name="chess.date" value="1988/08/08 12:34:56" /><br />
    <input type="reset" />
    <input type="submit" />
</form>

jsp頁面的格式可用main方法打如下的語法測試:
System.out.println(DateFormat.getDateTimeInstance().format(new Date()));

這樣才知道格式要打什麼,不然會往struts-a.xml設定的input頁跳轉;
如果input頁沒設,會出404,找不到input的錯誤
所以字串、數字、日期都可以自動轉換成java的型式
如果數字打字串會錯,還有日期我試的結果,年月日是OK的,但時分秒都是0

如果EL失效,就是${xxx}會直接印出來,就在JSP加<%@ page isELIgnored="false"%>

沒有留言:

張貼留言