67,511
社区成员
发帖
与我相关
我的任务
分享
<package name="admin" extends="struts-default" namespace="/BlackAdmin">
<action name="newsSectionAction_*" class="newsSectionAction" method="{1}">
<result name="newsSection">NewsSection.jsp</result>
<result name="listColumns">listColumns.jsp</result>
</action>
</package>
<bean id="newsSectionDao" class="com.onionportal.blackadmin.dao.imp.NewsSectionDaoImp">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="newsSectionService" class="com.onionportal.blackadmin.service.imp.NewsSectionServiceImp">
<property name="newsSectionDao" ref="newsSectionDao"></property>
</bean>
<bean id="newsSectionAction" class="com.onionportal.blackadmin.action.NewsSectionAction">
<property name="newsSectionService" ref="newsSectionService"></property>
</bean>
package com.onionportal.blackadmin.action;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import com.onionportal.blackadmin.service.NewsSectionService;
import com.onionportal.blackadmin.service.imp.NewsSectionServiceImp;
import com.onionportal.orm.NewsPart;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
/**
* @author <a href="mailto:onion_xiang@126.com">Onion.Xiang</a>
* 新闻栏目管理Action
*/
public class NewsSectionAction extends ActionSupport implements ModelDriven<NewsPart>{
/**序列化此类*/
private static final long serialVersionUID = -4087314881991815540L;
/**新闻栏目业务逻辑层注入*/
private NewsSectionService newsSectionService;
/**新闻栏目列表*/
private List<NewsPart> newsPartList=new ArrayList<NewsPart>();
/**Action 前台显示消息*/
private String actionMsg;
/**上级栏目ID*/
private String parentid;
/**采用模型驱动*/
private NewsPart model=new NewsPart();//用于封装新闻栏目属性的模型实例
public NewsPart getModel() {
return model;
}
public void setModel(NewsPart model) {
this.model = model;
}
/**
* 获得所有的新闻栏目
* 新闻栏目浏览
* @return newsSection
*/
public String newsBrowseClumns(){
if(actionMsg!=null){
try {
actionMsg = new String(actionMsg.getBytes("ISO8859-1"),"gbk");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
addActionMessage(actionMsg);
}
newsPartList=newsSectionService.getNewsPart();
return "newsSection";
}
/**
*处理一级新闻栏目下拉列表请求
*@return String listColumns
*/
public String listColumns(){
newsPartList=newsSectionService.getNewsPart();
NewsPart firstnode = new NewsPart();
firstnode.setId(-1);
firstnode.setPartName("无上级栏目");
newsPartList.add(0,firstnode);
return "listColumns";
}
/**
*添加新闻栏目
*@type String
*/
public String addColumns(){
System.out.println(parentid);
NewsPart news=new NewsPart();
news.setNewsPart(model.getNewsPart());
news.setPartExplan(model.getPartExplan());
System.out.println("===="+model.getPartName()+"==="+model.getPartExplan()+"==="+this.getParentid());
return "newsSection";
}
public String getParentid() {
return parentid;
}
public void setParentid(String parentid) {
this.parentid = parentid;
}
public void setNewsSectionService(NewsSectionService newsSectionService) {
this.newsSectionService = newsSectionService;
}
public void setNewsSectionService(NewsSectionServiceImp newsSectionService) {
this.newsSectionService = newsSectionService;
}
public String getActionMsg() {
return actionMsg;
}
public void setActionMsg(String actionMsg) {
this.actionMsg = actionMsg;
}
public List<NewsPart> getNewsPartList() {
return newsPartList;
}
public void setNewsPartList(List<NewsPart> newsPartList) {
this.newsPartList = newsPartList;
}
}
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- 对新闻栏目表单中的两个必填字段进行必填验证 -->
<validators>
<field name="partName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>${getText("columns_validation_name")}</message>
</field-validator>
</field>
<field name="partExplan">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>${getText("columns_validation_code")}</message>
</field-validator>
</field>
</validators>
<s:form action="newsSectionAction_addColumns" theme="simple">
<table width="300" align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="right"><s:text name="columns_label_parent"/>:</td>
<td>
<s:url id="tolist" value="newsSectionAction_listColumns.action">
<s:param name="parentid" value="parentid" />
</s:url>
<sx:div href="%{tolist}" id="norefresh" theme="ajax">
</sx:div>
</td>
</tr>
<tr>
<td align="right"><s:text name="columns_label_name"/>:</td>
<td><s:textfield name="partName" size="22"/></td>
</tr>
<tr>
<td align="right"><s:text name="columns_label_code"/>:</td>
<td><s:textfield name="partExplan" size="22"/></td>
</tr>
</table>
<br>
<div align="center">
<sx:submit key="label_submit"/>
<s:reset key="label_reset"/>
<s:set name="label_return" value="%{getText('label_return')}"/>
<input type="button" name="btn_ret" value="${label_return}" onClick="window.location='newsSectionAction_browseColumns.action';">
</div>
</s:form>
No result defined for action com.onionportal.blackadmin.action.NewsSectionAction and result input
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:270)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at