Der Controller sieht natürlich so aus. "Registrierung", "Suche", "Fertig" und "Auferstehung" werden alle umgeleitet. Und jedes Mal werden alle Daten aus der Tabelle entfernt, in eine Liste aufgenommen und an den Bildschirm übergeben.
@RequestMapping(value = "/newItem", params="newItem",method = RequestMethod.POST)
@Transactional("transactionManagerName")
public String newItem(@Validated TodoForm form, BindingResult result, Model model)
{
DefaultTransactionDefinition dtDef = new DefaultTransactionDefinition();
TransactionStatus tSts = txMgr.getTransaction(dtDef);
try
{
jdbcTemplate.update("INSERT INTO todo (content,done) VALUES (?, ?)", form.getContent(),false);
txMgr.commit(tSts);
}
catch(Exception ex)
{
txMgr.rollback(tSts);
logger.debug("Update fehlgeschlagen",ex.toString());
}
return "redirect:/";
}
@RequestMapping(value = "/newItem", params="searchItem",method = RequestMethod.POST)
@Transactional("transactionManagerName")
public String searchItem(@Validated TodoForm form, BindingResult result, Model model)
{
String likeSQL = "select * from todo where content like '%" + form.getContent() + "%'";
//Holen Sie sich alle Daten aus der Tabelle todo
List<Map<String, Object>> ret = jdbcTemplate.queryForList(likeSQL);
//Generieren Sie eine Liste mit Daten, die an den Bildschirm übergeben werden sollen
List<TodoItem> mList = new ArrayList<TodoItem>();
for(int i=0;i<ret.size();i++)
{
TodoItem tmp = new TodoItem();
tmp.setId(ret.get(i).get("id").toString());
tmp.setContent(ret.get(i).get("content").toString());
if(ret.get(i).get("done").toString().equals("false"))
{
tmp.setDone(false);
}
else
{
tmp.setDone(true);
}
mList.add(tmp);
}
//Stellen Sie die Liste, die an den Bildschirm übergeben werden soll, auf Modell ein
model.addAttribute("mList", mList );
return "todo/todo";
}
@RequestMapping(value = "/", method = RequestMethod.GET)
public String index(Locale locale, Model model)
{
//Holen Sie sich alle Daten aus der Tabelle todo
List<Map<String, Object>> ret = jdbcTemplate.queryForList("select * from todo");
//Generieren Sie eine Liste mit Daten, die an den Bildschirm übergeben werden sollen
List<TodoItem> mList = new ArrayList<TodoItem>();
for(int i=0;i<ret.size();i++)
{
TodoItem tmp = new TodoItem();
tmp.setId(ret.get(i).get("id").toString());
tmp.setContent(ret.get(i).get("content").toString());
if(ret.get(i).get("done").toString().equals("false"))
{
tmp.setDone(false);
}
else
{
tmp.setDone(true);
}
mList.add(tmp);
}
//Stellen Sie die Liste, die an den Bildschirm übergeben werden soll, auf Modell ein
model.addAttribute("mList", mList );
return "todo/todo";
}
@RequestMapping(value = "/restore", method = RequestMethod.POST)
@Transactional("transactionManagerName")
public String restore(@Validated TodoForm form, BindingResult result, Model model)
{
DefaultTransactionDefinition dtDef = new DefaultTransactionDefinition();
TransactionStatus tSts = txMgr.getTransaction(dtDef);
List<Map<String, Object>> ret = jdbcTemplate.queryForList("select * from todo WHERE id=?",new Object[]{form.getId()});
if(ret.size()>0)
{
TodoItem upItem = new TodoItem();
upItem.setId(form.getId());
upItem.setContent(form.getContent());
upItem.setDone(form.getDone());
SqlParameterSource param = new BeanPropertySqlParameterSource(upItem);
try
{
jdbcTemplate.update("UPDATE todo SET done = ? WHERE id = ?",false,form.getId());
txMgr.commit(tSts);
}
catch(Exception ex)
{
txMgr.rollback(tSts);
logger.debug("Update fehlgeschlagen",ex.toString());
}
}
else
{
logger.debug("Nicht aktualisierbar");
}
return "redirect:/";
}
@RequestMapping(value = "/done", method = RequestMethod.POST)
@Transactional("transactionManagerName")
public String done(@Validated TodoForm form, BindingResult result, Model model)
{
DefaultTransactionDefinition dtDef = new DefaultTransactionDefinition();
TransactionStatus tSts = txMgr.getTransaction(dtDef);
List<Map<String, Object>> ret = jdbcTemplate.queryForList("select * from todo WHERE id=?",new Object[]{form.getId()});
if(ret.size()>0)
{
TodoItem upItem = new TodoItem();
upItem.setId(form.getId());
upItem.setContent(form.getContent());
upItem.setDone(form.getDone());
SqlParameterSource param = new BeanPropertySqlParameterSource(upItem);
try
{
jdbcTemplate.update("UPDATE todo SET done = ? WHERE id = ?",true,form.getId());
txMgr.commit(tSts);
}
catch(Exception ex)
{
txMgr.rollback(tSts);
logger.debug("Update fehlgeschlagen",ex.toString());
}
}
else
{
logger.debug("Nicht aktualisierbar");
}
return "redirect:/";
}
Ich benutze MySQL. Der Tisch sieht so aus.
CREATE TABLE `todo` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`content` varchar(50) DEFAULT NULL,
`done` tinyint(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8
Klicken Sie hier für eine dünne Quelle: umarmen: https://github.com/pugachev/todomvc.git
Das Wetter war diesen Samstag und Sonntag schlecht: Regenschirm2: Es war kalt: Schneeflocke: Also habe ich es von Hand gemacht. Ich habe mich auch auf andere Leute bezogen. Vielen Dank.
Recommended Posts