0

struts2 (vers: 2.3.15) を使用する Java Web アプリケーションがあり、型変換を int に適用する必要があります。

次のコードを書きました。

package sistema.conversores;

import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.Map;
import org.apache.struts2.util.StrutsTypeConverter;

/**
 *
 * @author Administrador
 */
public class IntegerConverter extends StrutsTypeConverter {

    public Object convertFromString(Map context, String[] values, Class toClass) {
System.out.println("load");
        if (values.length != 1) {
            super.performFallbackConversion(context, values, toClass);
        }
System.out.println("conversion");
        final String numero = values[0];

        try {
            return Integer.parseInt(numero);
        } catch (Exception e) {
            return 0;
        }
    }

    public String convertToString(Map context, Object o) {
        final NumberFormat formatter = new DecimalFormat("#0");
System.out.println("lectura");
        if (o instanceof Integer) {
            return formatter.format(o);
        } else {
            return String.valueOf(o);
        }
    }
}

そしてそれを xwork-conversion.properties に追加します

# syntax: <type> = <converterClassName>
int = sistema.conversores.IntegerConverter
java.util.Date = sistema.conversores.DateConverter

しかし、int型変換は実行されません。他の変換は正常に実行されます。また、int型変換はstruts2 vers 2.1.6で正常に動作します

どうすればこれを修正できますか?

4

0 に答える 0