用逗号拆分字符串,然后在 Play 中存储在数组 val 中! + 斯卡拉
Split string by commas then Store in array val in Play! + Scala
我正在传递一个列表
errors.add(new ValidationError("Employee " + strId, "error.range," + strName +","+ intRange));
这将构建一个字符串
"Employee1","error.format,FIRST NAME,20
我想用“,”拆分消息字符串,并将其存储在 Scala 模板或视图中旋转的数组变量中。我不太擅长 scala 代码,我不知道如何在 scala 模板中存储变量,也不知道拆分字符串的语法。是否有可以在 Scala 模板中完成此任务的代码?谢谢。
<div id = "msg-menu" class = "msg-menu">
@for((key, value) <- appModel.errors) {
<div class="error-msg">
<p>@key :
@for(err <- value) {
@for(error <- err.message.split(",")) {
@Messages(error)
}
}
</p>
</div>
}
</div>
我所做的是使用 for 循环来完成它,但这不是我需要的。我需要在数组中声明所有字符串并将它们用作 @Messages
上的参数。喜欢:
@Messages(error[0],error[1],error[2])
其中 error0 = "error.range"、error1 = "FIRST NAME" 和 error2 = "20"。在 conf/message 中,我将使用参数
构建一条错误消息
error.range = Enter {0} in {1} characters or less.
变量在 twirl 中使用 @defining
定义,方式如下:
@defining( err.message.split(",").lift ) { errors =>
...
}
lift
的使用可能很方便,因为它有助于解决索引越界的情况,在这种情况下您可能不知道数组/集合中元素的确切数量。 errors(2) 将 return Some("20")
在您的示例中,如果没有值,则 None
。
用上面的代码替换最里面的 for 循环并硬编码为恰好 3 个参数,然后您可能会得到类似
的东西
@defining( errors(0).getOrElse("") ) { messageId =>
@Message(messageId,errors(1).getOrElse(""),errors(2).getOrElse(""))
}
我正在传递一个列表
errors.add(new ValidationError("Employee " + strId, "error.range," + strName +","+ intRange));
这将构建一个字符串
"Employee1","error.format,FIRST NAME,20
我想用“,”拆分消息字符串,并将其存储在 Scala 模板或视图中旋转的数组变量中。我不太擅长 scala 代码,我不知道如何在 scala 模板中存储变量,也不知道拆分字符串的语法。是否有可以在 Scala 模板中完成此任务的代码?谢谢。
<div id = "msg-menu" class = "msg-menu">
@for((key, value) <- appModel.errors) {
<div class="error-msg">
<p>@key :
@for(err <- value) {
@for(error <- err.message.split(",")) {
@Messages(error)
}
}
</p>
</div>
}
</div>
我所做的是使用 for 循环来完成它,但这不是我需要的。我需要在数组中声明所有字符串并将它们用作 @Messages
上的参数。喜欢:
@Messages(error[0],error[1],error[2])
其中 error0 = "error.range"、error1 = "FIRST NAME" 和 error2 = "20"。在 conf/message 中,我将使用参数
构建一条错误消息error.range = Enter {0} in {1} characters or less.
变量在 twirl 中使用 @defining
定义,方式如下:
@defining( err.message.split(",").lift ) { errors =>
...
}
lift
的使用可能很方便,因为它有助于解决索引越界的情况,在这种情况下您可能不知道数组/集合中元素的确切数量。 errors(2) 将 return Some("20")
在您的示例中,如果没有值,则 None
。
用上面的代码替换最里面的 for 循环并硬编码为恰好 3 个参数,然后您可能会得到类似
的东西 @defining( errors(0).getOrElse("") ) { messageId =>
@Message(messageId,errors(1).getOrElse(""),errors(2).getOrElse(""))
}