Concordion - нужно показать кучу данных без проверки значения
Я борюсь с тестом на соответствие.
Согласие в первую очередь направлено на то, чтобы утверждать, что ценность данных соответствует ожидаемой. Однако время от времени вам нужно показывать некоторые данные в HTML, которые предназначены только для просмотра (возможно, чтобы тестовый пример был более читабельным для того, кто только читает HTML).
В моем случае мне нужно запросить таблицу и показать некоторые данные. Мне НЕ нужно утверждать, что данные представляют собой какую-то конкретную ценность (это происходит где-то еще ниже).
<table concordion:verifyRows="#aCollection : getSomeBunchOfDataFromDB()">
<tr>
<th concordion:echo="#aCollection.firstRow">1st</th>
<th concordion:echo="#aCollection.secondRow">2nd</th>
<th concordion:echo="#aCollection.thirdRow">3rd</th>
<th concordion:echo="#aCollection.fourthRow">4th</th>
</tr>
Теперь это делает работу хорошо. Однако есть одна ошибка. Код в его текущем формате ожидает кучу строк. Следовательно, он ожидает, что куча trtds покажет эти данные. Итак, в основном я должен предоставить кучу пустых trs (именно то количество строк, которое я ожидаю от базы данных.
<tr>
<td />
<td />
<td />
<td />
</tr>
<tr>
<td />
<td />
<td />
<td />
</tr>
Это работает. Но, конечно, это хакерство. Мне не удалось найти какой-либо способ выполнить работу (например, показать набор результатов в HTML-кодах Concrodion), не нуждаясь в длинном списке пустых trtds.
Если кто-то сталкивался с проблемой и / или исправил что-то подобное, пожалуйста, напишите обратно.
2 ответа
Спасибо @mszalbach за ваш ответ. Я думаю, вы правы.
Тем не менее, я просто искал быстрое решение, которое не выглядит уродливо. Я не возражаю против того, чтобы это было по-настоящему хакерски, и я не особо заботился о создании HTML в своем java-коде, когда мне было хорошо с HTML, который предоставлял concordion (за исключением красной подсветки). Поэтому я выбрал подход, который потребовал наименьших усилий (определенно хакерский, но он работает) и который не выглядит слишком плохо (ему не нужен длинный список пустых TRTD).
Я угнал стандартную css-версию согласия.:)
<style>
.surplus,.surplus * {
background-color: white;
}
</style>
Поместите это наверху своего HTML, и все готово.
Не забирать кредит у @mszalbach. Я думаю, что ваш подход - это "правильная" вещь. Мой - это просто "правильная" вещь, которую нужно делать, когда у вас надвигающийся крайний срок, и вам просто нужно согласие, чтобы выглядеть хорошо, если некоторые утверждения не нарушаются.
Вы можете попробовать встроенное расширение для согласия.
Так что вы бы добавили
@Extensions(EmbedExtension.class)
Для вашего класса, а затем можете использовать метод getSomeBunchOfDataFromDBFormatedAsHtml
который возвращает строку с HTML-кодом с вашим <td>
s генерируется циклом и показывает эту таблицу с:
<span ext:embed="getSomeBunchOfDataFromDBFormatedAsHtml()"/>