Struts2有些情况下需要在jsp中嵌套调用action执行的结果
Struts2有些情况下需要在jsp中嵌套调用action执行的结果
1.NewsAction类
package com.mingda.action; import java.util.Date; import java.util.List; import java.util.UUID; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.Namespace; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.springframework.beans.factory.annotation.Autowired; import com.mingda.entity.News; import com.mingda.service.NewsService; @ParentPackage("struts-default") @Namespace("/") public class NewsAction { private NewsService newsService; private List<News> newses; public List<News> getNewses() { return newses; } public void setNewses(List<News> newses) { this.newses = newses; } public NewsService getNewsService() { return newsService; } @Autowired public void setNewsService(NewsService newsService) { this.newsService = newsService; } @Action(value = "newsSave", results = { @Result(name = "success", location = "/news.jsp") }) public String save() { News news = new News(); news.setId(UUID.randomUUID().toString()); news.setTitle("我爱你"); news.setContent("我稻草打飞机卡拉电视剧考虑ffffffff!"); news.setCreateTime(new Date()); newsService.save(news); return "success"; } @Action(value = "newsList", results = { @Result(name = "success", location = "/news.jsp") }) public String list() { List<News> newses=newsService.listNews(); setNewses(newses); return "success"; } }
2.struts2中action跳转页面(news.jsp)
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<c:forEach items="${newses}" var="news">
<ul style="width:410px;" class="list fl">
<li><span class="fr"><fmt:formatDate value="${news.createTime}" type="date" pattern="yyyy-MM-dd"/></span><a href="news/252825.shtml"><c:out value="${news.title}"/></a></li>
</ul>
</c:forEach>
3.jsp使用struts2的action标签调用action的页面(test.jsp)
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
新闻测试
<br />
<s:action name="newsList" namespace="/" executeResult="true"/>
4.常见错误:
[org.apache.struts2.components.ActionComponent]Could not execute action: /newsList
There is no Action mapped for action name newsList. - [unknown location]
问题原因:Namespace没有指定。
5.浏览器最后正常显示结果:

浙公网安备 33010602011771号