繁体   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