我知道如何在自己的HTML标签上使用sec:authentication="name"和sec:authorize="hasAnyRole(...)"生成结果,但现在我想在表达式中使用它们,例如:
th:if="${hasAnyRole('ROLE_USER', 'ROLE_ADMIN') and someotherboolexpression}"
Run Code Online (Sandbox Code Playgroud)
有办法做到这一点吗?
我需要在给定的容器中分发"n"个图像.如果容器的纵横比是横向,纵向或正方形,它应该优化空间.目的是使图像尽可能大,并且所有图像都具有相同的可用空间.为此,我计划创建一个网格,但我需要知道根据容器的纵横比,它必须有多少列和多少行.
我看了一下这个问题,但这并不是我需要的.
这个n = 8的图像应该澄清一下:

如果容器是垂直的,则需要4行和2列,如果容器是正方形,则需要3行3列,如果容器是水平的,则需要2行4列.
我正在写一个函数,但我陷入了中间:
private int[] calculateRowsAndColumnsNeeded(int numberOfImages, Dimension containerSize){
int numberOfColumns = 0;
int numberOfRows = 0;
int containerArea = containerSize.height * containerSize.width;
float singleCellArea = containerArea / numberOfImages;
double cellSideLength = Math.sqrt(singleCellArea);
// What to do with cellSideLength to get the right number of columns and rows?
return new int[]{numberOfColumns, numberOfRows};}
Run Code Online (Sandbox Code Playgroud)
我真的很感激这里的一些帮助.
提前致谢,
迭戈
我想生成纯文本(没有周围的标签)但由于某种原因我得到了不受欢迎的"白色"字符.如果我试试
<th:span th:text="myText" th:remove="tag">Placeholder text</th:span>
Run Code Online (Sandbox Code Playgroud)
要么
<th:block th:text="myText">Placeholder text</th:block>
Run Code Online (Sandbox Code Playgroud)
我明白了:
"
myText
"
Run Code Online (Sandbox Code Playgroud)
在我进行递归调用后,我不确定这是否会影响一行:
<div th:with="nodelist = ${node.children}" th:include="this::fragmentid" th:remove="tag"></div>
Run Code Online (Sandbox Code Playgroud)
可能会发生什么?
提前致谢.
我允许用户创建一些自定义字段...因此,我不知道他们的ID.在视图中显示这些字段时,我需要使用一个变量的值并使用它来获取另一个变量的值.目前,th:value ="$ {udfield.id}"当然只会分配"udfield.id"的值.这可能吗?
<div data-th-each="udfield : ${udfields}">
<label th:text="${udfield.displayText}">User defined field:</label>
<input th:name="${udfield.id}" type="text" class="form-control" th:value="${udfield.id}"/>
</div>
Run Code Online (Sandbox Code Playgroud)
我的控制器发送从数据库中提取的值:
for (FieldValue currentFieldVal : userFieldValues){
attributes.addFlashAttribute(currentFieldVal.getFieldID(), currentFieldVal.getValue());
}
Run Code Online (Sandbox Code Playgroud) 我目前有一个选择下拉框,根据所选选项显示多个输入文件浏览器之一(每个浏览器仅允许“.txt”、“.cvs”等之一)。我想根据所选选项更改表单的操作,以便我可以在控制器端以不同的方法处理每种情况。
此示例在不使用 thymeleaf 时有效:
$("#myselect").change(function() {
if($(this).val() == "option1"){
$("#form").attr("action", "/processopt1");
}
});
Run Code Online (Sandbox Code Playgroud)
我正在为百里香尝试以下操作,但没有成功:
$("#myselect").change(function() {
if($(this).val() == "option1"){
$("#form").attr("th:action", "@{/processopt1}");
}
});
Run Code Online (Sandbox Code Playgroud)
提前致谢。