GitHub: https://github.com/SylkeWay/synthful
There is a String bean view1Html in the context configuration file /durian/src/main/resources/springweb/pages-context.xml .
Similar to the previous page, the bean
- is a java.lang.String bean
- specifying constructor argument:
<constructor-arg><value> html text </value></constructor-arg> - making use of the CDATA enclosure
@Controller
@RequestMapping("/durianview")
public class DurianControllerAsView extends AAngsta {
private String plantFruitName;
@Value(value = "${plant.fruit.name}")
private void setPlantFruitName(String plantFruitName) {
this.plantFruitName = plantFruitName;
logger.info("plantFruitName 1:{}", plantFruitName);
}
@Value(value = "${plant.fruit.type}")
private String plantFruitType;
@Inject private String view1Html;
@RequestMapping(value = "/v1", method = RequestMethod.GET)
@ResponseBody
public String requestHandler (ModelMap model) throws Exception {
logger.info("plantFruitName 2:{}", plantFruitName);
logger.info("plantFruitType:{}", plantFruitType);
return view1Html;
}
}
Note that the controller is generating its own view
- due to the annotation @ResponseBody.
- IOW, the String bean is the view
- and the application-properties / context-variables are the model.
Where the context variable substitution is due to the property file appbase/properties/b.properties.
plant.fruit.name=Durian plant.fruit.type = peanut plant.fruit.etymology.language = Malay plant.fruit.etymology.meaning = thorny plant.genus = Durio plant.tribe = Durioneae plant.subfamily = Malvaceae plant.order = Malvades
HTML template as multi-line text inSpring String Bean
The String bean view1Html in ScriptTemplates-context.xml
<bean id="view1Html" class="java.lang.String" scope="prototype">
<constructor-arg><value><![CDATA[
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html template="true"><head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type">
<title>Durian</title>
</head><body>
<table style="text-align: left;" border="1" cellpadding="5" cellspacing="2">
<tbody style="vertical-align: top;">
<tr>
<td>plant.fruit.name<br/><br/></td>
<td>${plant.fruit.name}</td>
</tr>
<tr>
<td>plant.fruit.type</td>
<td>${plant.fruit.type}</td>
</tr>
<tr>
<td>plant.fruit.etymology.language</td>
<td>${plant.fruit.etymology.language}</td>
</tr>
<tr>
<td>plant.fruit.etymology.meaning</td>
<td>${plant.fruit.etymology.meaning}</td>
</tr>
<tr>
<td>plant.genus</td>
<td>${plant.genus}</td>
</tr>
<tr>
<td>plant.tribe</td>
<td>${plant.tribe}</td>
</tr>
<tr>
<td>plant.subfamily</td>
<td>${plant.subfamily}</td>
</tr>
<tr>
<td>plant.order</td>
<td>${plant.order}</td>
</tr>
</tbody>
</table>
</body></html>
]]></value></constructor-arg>
</bean>
The page is accessed as http://localhost:8080/durian/v/durianview/v1 with the resulting view:
| plant.fruit.name | Durian |
| plant.fruit.type | peanut |
| plant.fruit.etymology.language | Malay |
| plant.fruit.etymology.meaning | thorny |
| plant.genus | Durio |
| plant.tribe | Durioneae |
| plant.subfamily | Malvaceae |
| plant.order | Malvades |
No comments:
Post a Comment