簡體   English   中英

Struts2不顯示字符串屬性

[英]Struts2 not showing String Attribute

我對Struts 2相當熟悉...自3天以來,我一直陷入一個非常奇怪的問題。
我的動作課有很多屬性; 一些是整數,其他是字符串。
我知道我已經為我的所有屬性創建了兩個getter / setter方法
展示擴展了struts-default和json-default,因為我需要使用struts2-jquery gridtag ...來渲染json表的類。
我的所有屬性均未打印過sord,sdix,page ..標記定義的那些屬性

我的動作課

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.apache.struts2.convention.annotation.ParentPackage;

import amz.votrerepas.dao.CategorieDao;
import amz.votrerepas.dao.CategorieDaoImplementation;
import amz.votrerepas.dao.ProduitDao;
import amz.votrerepas.dao.ProduitDaoImplementation;
import amz.votrerepas.models.Produit;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.Preparable;

@ParentPackage(value = "showcase")
public class ProduitAction extends ActionSupport implements Preparable{

private static final long serialVersionUID = 947577563329037436L;
private List<Produit> produits;

private String searchOper = "asc"; // Search operator
private String sord; // sorting order - asc or desc
private String sidx; // get index row - i.e. user click to sort.
private String searchField; // Search Field
private String searchString; // The Search String
private String oper;
private Integer rows = 0; 
private Integer page = 0; 
private Integer total = 0; 
private Integer records; 
private String myeditOptions;

@Override
public void prepare() throws Exception {
    CategorieDao catdao = new CategorieDaoImplementation();
    Map<Long, String> listEditOptions = catdao.getAllCategories();
    List<String> arraywithresulttupels = new ArrayList<String>();
    for (Long key : listEditOptions.keySet()) {
        arraywithresulttupels.add(""+key+":"+listEditOptions.get(key));
    }
    Collections.sort(arraywithresulttupels);
    myeditOptions = "{value:'" + StringUtils.join(arraywithresulttupels, ";")
            + "'}";
}

@Override
public String execute() throws Exception {
    ProduitDao dao = new ProduitDaoImplementation();
    produits = dao.getallProducts();
    return SUCCESS;
}

public String getJSON() throws Exception {
    return execute();
}

public List<Produit> getProduits() {
    return produits;
}

public void setProduits(List<Produit> produits) {
    this.produits = produits;
}

public String getSearchOper() {
    return searchOper;
}

public void setSearchOper(String searchOper) {
    this.searchOper = searchOper;
}

    public String getSord() {
    return sord;
}

public void setSord(String sord) {
    this.sord = sord;
}

public String getSidx() {
    return sidx;
}

public void setSidx(String sidx) {
    this.sidx = sidx;
}

public String getSearchField() {
    return searchField;
}

public void setSearchField(String searchField) {
    this.searchField = searchField;
}

public String getSearchString() {
    return searchString;
}

public void setSearchString(String searchString) {
    this.searchString = searchString;
}

public String getOper() {
    return oper;
}

public void setOper(String oper) {
    this.oper = oper;
}

public Integer getRows() {
    return rows;
}

public void setRows(Integer rows) {
    this.rows = rows;
}

public Integer getPage() {
    return page;
}

public void setPage(Integer page) {
    this.page = page;
}

public Integer getTotal() {
    return total;
}

public void setTotal(Integer total) {
    this.total = total;
}

public Integer getRecords() {
    return records;
}

public void setRecords(Integer records) {
    this.records = records;
}
public String getMyeditOptions() {
    return myeditOptions;
}
public void setMyeditOptions(String myeditOptions) {
    this.myeditOptions = myeditOptions;
}
}

我的JSP頁面中的SomeWhere

    <s:property value="%{myeditOptions}"/>
    <s:property value="%{page}"/>

Struts.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.devMode" value="false" />

<!-- ******************************** Comptes Actions ******************************** -->
<package name="default" extends="struts-default" namespace="/auth">
    <action name="authenticate" class="amz.votrerepas.actions.Authenticate" method="execute">
        <result name="success" type="redirectAction">
            <param name="actionName">indexProduits</param>
            <param name="namespace">/products</param>
        </result>
        <result name="error">/pages/welcome.jsp</result>
    </action>
</package>

<!-- ******************************** Produits Actions ******************************** -->

<package name="categories" extends="struts-default" namespace="/products">

    <action name="indexProduits" class="amz.votrerepas.actions.CategorieAction" method="execute">
        <result name="success">/pages/admin/products.jsp</result>
    </action>

    <action name="edit-categorie-grid-entry" class="amz.votrerepas.actions.CategorieEditAction" method="execute">
        <result name="success"> /pages/admin/products.jsp </result>
        <result name="input"> /pages/admin/products.jsp </result>
    </action>

    <action name="edit-produit-grid-entry" class="amz.votrerepas.actions.ProduitEditAction" method="execute">
        <result name="success"> /pages/admin/products.jsp </result>
        <result name="input"> /pages/admin/products.jsp </result>
    </action>
</package>

<!-- ******************************** Json Actions ******************************** -->
<package name="showcase" extends="struts-default,json-default" namespace="/jquery">

    <action name="jsontableCats" class="amz.votrerepas.actions.CategorieAction" method="getJSON">
        <result name="success" type="json" />
    </action>

    <action name="jsontableProds" class="amz.votrerepas.actions.ProduitAction"  method="getJSON">
        <result name="success" type="json" />
    </action>
</package>
</struts>

我的圖書館文件夾

 antlr-2.7.6 antlr-2.7.7 asm-3.3.1 asm-3.3 asm-commons-3.3 asm-tree-3.3 cglib-2.2.2 codegen-0.5.9 commonj.sdo-2.1.1.v201112051852 commons-collections-3.1 commons-fileupload-1.2.2 commons-io-2.0.1 commons-lang-2.6 commons-lang3-3.1 dom4j-1.6.1 ecj-3.7.2 eclipselink-2.4.0 freemarker-2.3.19 guava-13.0.1 hibernate3 hibernate-commons-annotations-4.0.1.Final hibernate-core-4.1.7.Final hibernate-entitymanager-4.1.7.Final hibernate-jpa-2.0-api-1.0.0.Final hibernate-validator-4.3.0.Final javassist-3.11.0.GA javassist-3.12.0.GA javassist-3.15.0-GA javax.inject-1 javax.persistence-2.0.4.v201112161009 jboss-logging-3.1.0.GA jboss-transaction-api_1.1_spec-1.0.0.Final joda-time-1.6 json-lib-2.3-jdk15 jsr305-1.3.9 jta-1.1 log4j-1.2.16 mysema-commons-lang-0.2.4 mysql-connector-java-5.1.25-bin ognl-3.0.6 querydsl-apt-3.1.1 querydsl-codegen-3.1.1 querydsl-core-3.1.1 querydsl-jpa-3.1.1 querydsl-jpa-3.1.1-apt querydsl-jpa-3.1.1-javadoc querydsl-sql-3.1.1 slf4j-api-1.6.1 slf4j-log4j12-1.6.1 struts2-convention-plugin-2.3.14 struts2-core-2.3.14 struts2-jquery-grid-plugin-3.5.1 struts2-jquery-plugin-3.5.1 struts2-json-plugin-2.3.14 validation-api-1.0.0.GA xwork-core-2.3.14 

頁面的值已顯示,但myeditOptions的值未顯示..... Pleeeease幫助

@ Lord-zed我看到您僅在prepare()方法上填充myEditOptions。 當單擊“執行”操作時,不會再次填充它。 因此,要么必須再次在execute()中填充它,要么在prepare操作的jsp中放置一個隱藏字段,以將其發布回“ execute”操作。 我建議在execute()中重新填充它。

無需強制轉換getter和setter,您也應該創建不同的getter和setters文件以及DAO。

暫無
暫無

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

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