Struts数据发布

时间:2013-11-24 08:06:05

标签: java jsp struts2

Struts 2存在问题。

  1. 从数据库中检索必要的数据。
  2. 在JSP中显示数据
  3. 在JSP中,我将提交表单。
  4. JSP页面中不存在检索到的数据。
  5. 要显示,我需要再次从数据库中检索数据。
  6. 因此,我需要在同一页面的每个提交操作中从数据库中检索数据。 但我不想像它那样检索。 如何在提交操作中维护数据?


    JSP页面

    <s:form name="XXXXXX" action="XXXXXXXX" method="post">
    <div align="right" style="width: 80%">
        <display:table name="userSearchForms" pagesize="${pageSize}" 
            cellpadding="5px;" cellspacing="5px;" requestURI=""
            class="displayTable" id="displayTable"
            style="border: 3px solid #D9D9D9; border-collapse: collapse; width: 100%;height: 100%;align: right;border: 3px solid #D9D9D9;">
            <display:column title="#" style="border:1px solid black;">
                <input type="radio" name="prep"
                    onclick="selectRadio(this.form, '<s:property value="#attr.displayTable.companyId"/>','<s:property value="#attr.displayTable.userId"/>')">
            </display:column>
            <display:column title="companyName" property="companyName" value="companyName"
                style="border:1px solid black;"></display:column>
            <display:column title="departmentName" property="departmentName" value="departmentName"
                style="border:1px solid black;"></display:column>
            <display:column title="userName" property="userName" value="userName"
                style="border:1px solid black;"></display:column>
            <display:column title="email" property="email" value="email"
                style="border:1px solid black;"></display:column>
        </display:table>
    </div>
    
    <div style="margin-left: 10%; width: 80%; text-align: right;">
        <s:submit value="Register" action="OtherAction1"/> 
        <s:submit value="Update" action="OtherAction2" /> 
        <s:submit value="Delete" action="OtherAction3"/>
    </div>
    
    </s:form>
    

    动作类

    public class sampleAction extends ActionSupport{
    private List<searchForm> userSearchForms;
    public List<searchForm> getUserSearchForms() {
            if (userSearchForms == null) {
                userSearchForms = new ArrayList<searchForm>();
            }
            return userSearchForms;
        }
    
    public void setUserSearchForms(List<searchForm> userSearchForms) {
            this.userSearchForms = userSearchForms;
        }
    
    public String execute(){
     // Retrieve the data from database;
     // Set to the userSearchForms;
     return SUCCESS;
    }
    
    public String OtherAction1(){
      // Other Program Logic;
      return SUCCESS;
    }
    
    public String OtherAction2(){
      // Other Program Logic;
      return SUCCESS;
    }
    
    public String OtherAction3(){
      // Other Program Logic;
      return SUCCESS;
    }
    
    }
    

    我需要使用OtherAction1OtherAction2OtherAction3方法从数据库中检索数据。

1 个答案:

答案 0 :(得分:0)

您必须从数据库中检索数据。这就是Web应用程序的工作方式,它会保留一些数据从内存中卸载。将这样的数据保存在存储器中是昂贵的,因为存储器本身很昂贵并且服务器具有有限的物理存储容量。如果数据依赖于用户正在浏览,则卸载数据变为需求#1,因为在应用程序中同时工作的可能用户的数量可能会有所不同,并且内存需求可能会增加。

提交表单是将用户输入的数据传递给Web应用程序的常用过程。在提交之前,JSP可能会呈现一些数据供用户查看。如果所需数据未加载意味着Web应用程序出现错误,则应解决这些问题。

您应该考虑到使用服务器操作内存非常昂贵。如果您将此类数据保留在会话或应用程序范围内,则数据将保留在操作内存中。您在这些范围中保存的更多数据需要更多内存要求。在设计Web应用程序时请记住这一点。