胸腺显示HashMap - java

这可能是一个愚蠢的问题,但我仍然找不到答案。

我的Spring Boot应用程序看起来像这样:

模型:

public class Company {

public static final String URL_COMPANY = "http://193.142.112.220:8337/companyList";
private Long iD;
private String companyName;
public static Map<Long, Object> companyMap;

public Long getiD() {
    return iD;
}

public void setiD(Long iD) {
    this.iD = iD;
}

public String getCompanyName() {
    return companyName;
}

public void setCompanyName(String companyName) {
    this.companyName = companyName;
}

@Override
public String toString() {
    return companyName;
}}

控制器:

@Controller

public class UrlController {

@GetMapping("/success")
public String show(Model model) {

    HashMap<Long, Object> company = (HashMap<Long, Object>) Company.companyMap;
    model.addAttribute("companyID", company);
    return "success";
}

视图:

<h1>All Companies:</h1>

<table border="1">
    <tr>
        <th>ID</th>
        <th>Name</th>
    </tr>
    <tr th:each="mapEntry: ${companyID}">
        <td th:text="${mapEntry.key}"></td>
        <td th:text="${mapEntry.value}"></td>

    </tr>
</table>
<a th:href="@{/}">Homepage</a>
</body>
</html>

因此,我的目标是显示一个包含公司ID和名称的表格。即使我的模型得到了地图,我仍然无法在浏览器中看到它。该表是空的。

    </tr>
    <tr th:each="mapEntry: {1=Tire Systems, 2=IT Enterprise, 3=Car Manufacture, 4=Electro Market}">
        <td th:text=""></td>
        <td th:text=""></td>

    </tr>

如果我检查页面源代码,这就是我得到的。所以我清楚地看到,该地图已加载,但未显示。

而且,带有“主页”的链接不起作用,我不确定为什么吗?

我想念什么?我试图用“公司”填写表格,然后使用这些公司的ID显示通过此ID附加到公司的资料。我可以将表格中的超链接用于ID吗?

参考方案

所以你想显示一张地图。如果您的地图的值为POJO,请尝试以下操作

<tr><th>ID</th><th>Name</th></tr>
<tr th:each="mapEntry : ${companyID}">
    <td th:text="${mapEntry.key}">keyvalue</td>
    <td th:each="item : ${mapEntry.value}" th:text="${item.FIELD_NAME_OF_YOUR_POJO}">keyvalue</td>
</tr>

这应该工作。我试图证明的是,这是可能的。迭代取决于您的数据结构。如果您具有复杂的数据结构,迭代将相应地更改。

如果您的地图值是原始类型或Java引用类型,则您当前的代码应该可以使用。我已经执行了类似您的代码,并且工作正常。请看一看 -

 HashMap<Long, Object> company = new HashMap<>();
 company.put(1L, "Hello World");
 model.addAttribute("companyID", company);

如果地图的值是自定义Java类型。然后按照前面的代码片段进行操作。

页面加载而不是提交时发生struts验证 - java

请原谅我;我对Struts有点陌生。我遇到一个问题,即页面加载而不是我实际提交表单时发生了验证。我整天都在论坛上搜寻和搜寻,没有任何运气。我显然做错了一些事情,应该很容易确定,但是我还没有发现问题所在。这是我的struts.xml的片段:<action name="*Test" method="{1}" clas…

DataSourceTransactionManager和JndiObjectFactoryBean和JdbcTemplate的用途是什么? - java

以下的用途是什么:org.springframework.jdbc.core.JdbcTemplate org.springframework.jdbc.datasource.DataSourceTransactionManager org.springframework.jndi.JndiObjectFactoryBean <tx:annotatio…

Struts2中的错误处理 - java

我对如何在Struts2中进行错误处理感到困惑。我希望在发生错误时将用户引导到一个中心页面。此外,当发生错误时,我希望将其记录下来,因为我使用的是log4j,因此我将其记录为log.error(e.getMessage(), e);但是,在动作类中,如果我捕获到错误(将我的所有代码放入try / catch中),则不会出现中央/常见错误页面。因此,我决定不捕…

在XSL中访问Hashmap时出现问题 - java

假设,我有一段代码: Map mappingId = new HashMap(); mappingId.put("1", "1000"); transformer.setParameter("mappingId", mappingId); transformer.transform(...); 我有…

在特定的Swing组件上设置自定义外观 - java

是否可以在Swing GUI上仅针对特定组件或组件集设置用于Synth外观的文件,而无需为其他任何组件进行更改? java参考方案 是的,有可能。将类型指定为“区域”,将其更改为“名称”,将值更改为由setName(“ componentName”)给定的特定名称;应用程序中的方法。添加这个<style id="titleBarButtons…