簡體   English   中英

如何在struts2中查看數據?

[英]How to view data in struts2?

我試圖從jsp查看數據庫中的數據,所以現在我有了一個想法,即在jsp中沒有任何scriplet或Java代碼。我學會了在struts.xml中使用模型驅動和一些攔截器,但是我不知道如何實現那么,有人可以指導並幫助我進一步了解Strut2 World嗎?

Beantest:

public String getId()
    {
        return id;
    }

    public void setId(String id)
    {
        this.id = id;
    }

    public String getBook()
    {
        return Book;
    }

    public void setBook(String book)
    {
        Book = book;
    }

    public String getAuthor()
    {
        return Author;
    }

    public void setAuthor(String author)
    {
        Author = author;
    }

    public String getAvailbleqty()
    {
        return Availbleqty;
    }

    public void setAvailbleqty(String availbleqty)
    {
        Availbleqty = availbleqty;
    }

    public String getCategory()
    {
        return Category;
    }

    public void setCategory(String category)
    {
        Category = category;
    }

DataAction.java:

public List<Beantest> viewbook()
{

    List<Beantest> al=new ArrayList<Beantest>();
    Beantest bt = new Beantest();
    try
    {
        String sql = "select * from Bookavaible";
        Statement stmt;
        stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery(sql);
        while (rs.next())
        {
            bt.setId(rs.getString("id"));
            bt.setBook(rs.getString("Book"));
            bt.setAuthor(rs.getString("Author"));
            bt.setAvailbleqty(rs.getString("Availbleqty"));
            bt.setCategory(rs.getString("Category"));
            al.add(bt);
        }
    } 
    catch (SQLException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return al;

}

動作測試

 public class ActionTest {
    Beantest bt;

    private List<Beantest> beans;

    public String viewbookaction()
    {
        DataAction da = new DataAction();
        beans = da.viewbook();
        return ActionSupport.SUCCESS;
    }

    public List<Beantest> getBeans()
    {
        return beans;
    }

Bookview.jsp:

<s:action name="VBA">
        <td>id:</td>

        <td>Book:</td>

        <td>Author:</td>

        <td>Availbleqty:</td>

        <td>Category:</td>

</s:action>

web.xml:

  <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      <welcome-file-list>
        <welcome-file>BookView.jsp</welcome-file>
      </welcome-file-list>
    </web-app>

strut2.xml

<package name="a" namespace="/">
    <action name="VBA" class="Action.ActionTest" method="viewbookaction">
        <result name="success">/BookView.jsp</result>
    </action>
</package>

除非您知道這樣做的方式和原因,否則不要在JSP中使用s:action標記。 要在JSP中顯示值,根本不需要它。 您應該使用struts標記訪問操作bean屬性。 例如,您可以使用s:property標簽將值打印到JSP。 例如

<s:iterator value="beans">    
    id: <s:property value="id"/><br>    
    Book: <s:property value="book"/><br>    
    Author: <s:property value="author"/><br>
    Availbleqty: <s:property value="availbleqty"/><br>    
    Category: <s:property value="category"/><br>    
<s:/iterator>

不推薦使用FilterDispatcher ,而應將其替換為StrutsPrepareAndExecuteFilter 請參閱web.xml文檔。 另請參見此答案,以獲取有關Struts和Hibernate中項目實施的需求建議

如下更改您的web.xml和stuts.xml。

Struts.xml

<struts>
<constant name="struts.devMode" value="true" />
<package name="a" namespace="/" extends="struts-default">
    <action name="" class="Action.ActionTest" method="viewbookaction">
        <result name="success">/BookView.jsp</result>
    </action>
</package>

web.xml

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

就這樣。 簡單地運行。

Struts2怎么綁定設置<object>從視圖返回到 controller<div id="text_translate"><p> 假設我的 controller 看起來像這樣:</p><pre> public class myController { private MyCustomItem acte; ... // getter and setter }</pre><p> 和MyCustomItem class 有一組另一個 class,像這樣</p><pre>public class MyCustomItem { private Set&lt;AnotherClass&gt; signataires; ... // getter and setter }</pre><p> 最后, AnotherClass項具有一些 String 屬性。</p><p> 我想要做的是,從鏈接到我的 controller 的視圖中,在我提交表單時設置那些字符串屬性,所以我寫了我的view.jsp ,如下所示:</p><pre> &lt;:-- some html before --&gt; &lt;s:form namespace="/my/namespace" action="MyController_execute"&gt; &lt;s.iterator value="acte:signataires" status="signaStatus"&gt; &lt;s:hidden name="id" value="%{id}" /&gt; &lt;s.property value="collectivite:nom"/&gt; &lt;s.textfield name="acte.signataires(%{#signaStatus.index}):commentaire" cssStyle="width;250px:"/&gt; &lt;/s:iterator&gt; &lt;s:submit/&gt; &lt;/s:form&gt;</pre><p> 在我提交表格后,如果我嘗試從我的 Set&lt;&gt; acte.signataires中獲取一些值,則在我的 controller 中,它們是 null:</p><pre> for (AnotherClass signataire: acte.getSignataires()) { System.out.println(signataire.getCommentaire()); // this print NULL }</pre><p> 有什么幫助嗎? 我的 jsp 映射不好嗎? 我還嘗試了一個非常簡單的語法,例如&lt;s:textfield name="commentaire" cssStyle="width:250px;"/&gt;但它也不起作用</p></div></object>

[英]Struts2 how to bind Set<Object> from view back to controller

暫無
暫無

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

相關問題 數據如何在Struts2中傳播? 如何在Struts2中子字符串化? 在Struts2視圖中顯示列表 在struts2中,如何在控制台中顯示當前視圖(jsp頁面) Struts2怎么綁定設置<object>從視圖返回到 controller<div id="text_translate"><p> 假設我的 controller 看起來像這樣:</p><pre> public class myController { private MyCustomItem acte; ... // getter and setter }</pre><p> 和MyCustomItem class 有一組另一個 class,像這樣</p><pre>public class MyCustomItem { private Set&lt;AnotherClass&gt; signataires; ... // getter and setter }</pre><p> 最后, AnotherClass項具有一些 String 屬性。</p><p> 我想要做的是,從鏈接到我的 controller 的視圖中,在我提交表單時設置那些字符串屬性,所以我寫了我的view.jsp ,如下所示:</p><pre> &lt;:-- some html before --&gt; &lt;s:form namespace="/my/namespace" action="MyController_execute"&gt; &lt;s.iterator value="acte:signataires" status="signaStatus"&gt; &lt;s:hidden name="id" value="%{id}" /&gt; &lt;s.property value="collectivite:nom"/&gt; &lt;s.textfield name="acte.signataires(%{#signaStatus.index}):commentaire" cssStyle="width;250px:"/&gt; &lt;/s:iterator&gt; &lt;s:submit/&gt; &lt;/s:form&gt;</pre><p> 在我提交表格后,如果我嘗試從我的 Set&lt;&gt; acte.signataires中獲取一些值,則在我的 controller 中,它們是 null:</p><pre> for (AnotherClass signataire: acte.getSignataires()) { System.out.println(signataire.getCommentaire()); // this print NULL }</pre><p> 有什么幫助嗎? 我的 jsp 映射不好嗎? 我還嘗試了一個非常簡單的語法,例如&lt;s:textfield name="commentaire" cssStyle="width:250px;"/&gt;但它也不起作用</p></div></object> struts2 jquery ajax從服務器返回數據,如何? 如何在Struts2中從JSON請求獲取數據 如何使表格顯示來自struts2中底層bean的數據? 如何使用jQuery將JSON數據發布到Struts2 Action類 如何使用struts2在兩個div中排列來自arraylist的數據
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM