将带有 JsonJavaObject 的数组列表传递给 SSJS 的方法

passing arraylist with JsonJavaObject into method from SSJS

在 XPage 上,我在 viewScope 中有一个包含 json 个对象的数组列表,我想将其提交给托管 bean:

function createPersons(){
    var json:java.util.ArrayList = viewScope.get("persons");
    personBean.createPersons(json);
}

这里是视图范围内容的示例:

[0] 
area    Compliance
mandatory   true
newArea false
person  Patrick Kwinten/Web
prio    2
[1] 
area    Credits
mandatory   true
newArea false
person  Patrick Kwinten/Web
prio    2
[2] 
area    Food
mandatory   true
newArea true
person  Patrick Kwinten/Web
prio    2

现在我想在我的 java class 中定义方法:

public void createPersons(ArrayList json){ utils.printToConsole(this.getClass().getSimpleName().toString() + " - createPersons() json"); utils.printToConsole("size json = " + json.size()); //去做; }

但我收到错误消息:

描述资源路径位置类型 JsonJavaObject 无法解析为类型 personBean.java

有什么建议吗?

我建议在您的视图范围内使用自定义 Java 对象,而不是依赖 Json 序列化。你创建一个Javaclass,大致是这样的:

    public class AreaInfo {
        private String area;
        private boolean mandatory;
        private boolean newArea;
        private String person;
        private int prio;

        public String getArea() {
            return area;
        }
        public void setArea(String area) {
            this.area = area;
        }
        public boolean isMandatory() {
            return mandatory;
        }
        public void setMandatory(boolean mandatory) {
            this.mandatory = mandatory;
        }
        public boolean isNewArea() {
            return newArea;
        }
        public void setNewArea(boolean newArea) {
            this.newArea = newArea;
        }
        public String getPerson() {
            return person;
        }
        public void setPerson(String person) {
            this.person = person;
        }
        public int getPrio() {
            return prio;
        }
        public void setPrio(int prio) {
            this.prio = prio;
        }


    }

在视图范围内的 ArrayList 中使用那个。如果您想获取例如,您还可以考虑在列表周围设置 class通过区域名称等。使它更容易处理。

让我知道这是否适合你