【问题标题】:Freemarker loop doesn't seems to print sequentiallyFreemarker 循环似乎没有按顺序打印
【发布时间】:2020-06-01 20:27:24
【问题描述】:

我正在尝试使用逗号分隔字符串中的 getter 和 setter 制作模型代码。但是在某个地方我犯了一个错误,我没有做对。

package ${packageName};


    public class modelName{

    <#assign x = ''>
    <#list parameters?split(',') as x>
    private ${x};
    <#assign mappedArray = []>
    <#assign y = ''>
    <#list x?split(r'\s+', 'r') as y>
    <#assign mappedArray = mappedArray + [y]>
    </#list>

    public ${mappedArray[0]} get${mappedArray[1]}(){
    return ${mappedArray[1]};
    }

    public void set${mappedArray[1]}( ${mappedArray[0]} ${mappedArray[1]}){
    this.${mappedArray[1]} = ${mappedArray[1]};
    }

    </#list>
    }

我将int id, String name 作为参数。我期待它被拆分,我们得到 x。从 x 我试图将其分配给 mappedAray 并尝试打印获取和设置功能。但我没有得到正确的输出。

    package com.vindys.myapplication;


public class modelName {

    private int id;
    private String name;

    public getString() {
        return String;
    }

    public int getid() {
        return id;
    }

    public void setid(int id) {
        this.id = id;
    }

    public void setString(String) {
        this.String = String;
    }

}

它为第一个参数写,后来的setter和getter搞砸了。

【问题讨论】:

    标签: java templates freemarker


    【解决方案1】:

    您展示的输出不能是您展示的模板的输出。因此,请检查您正在查看的模板是否是实际使用的模板。因为否则模板应该可以工作,尽管它不必要地过于复杂。就像您将某些内容拆分为一个序列,然后从中构建另一个完全相同的序列。考虑一下,它的作用相同:

    <#list parameters?split(',') as param>
    <#assign paramWords = param?word_list>
    <#assign type = paramWords[0]>
    <#assign name = paramWords[1]>
    private ${type} ${name};
    
    public ${type} get${name?cap_first}(){
        return ${name};
    }
    
    public void set${name?cap_first}(${type} ${name}){
        this.${name} = ${name};
    }
    </#list>
    

    【讨论】:

    • 我正在尝试像字符串名称、int id、浮点数这样的输入所以第一个
    • @VinodVarghese 是的,我是这个意思。但是试试这个,看看是否还有任何混乱。也许最快的是尝试try.freemarker.apache.org
    猜你喜欢
    • 2011-05-06
    • 2021-12-03
    • 2016-06-22
    • 1970-01-01
    • 2017-04-23
    • 2020-04-22
    • 2020-08-05
    • 2021-11-17
    • 1970-01-01
    相关资源
    最近更新 更多