一.Struts本来有<bean:write>标签,对其类StringTag进行扩展
我觉得在读数据的时候截取标题的长度有一些不妥当,我刚才试图写了一个很简单的自定义标签,在struts中有这样一个标签<bean:write name="article" property="title"/>上面标签的意思是读取article对象中的title属性的值,现在对title的长度要求限制在一定范围之内,定义此标签的类是org.apache.struts.taglib.bean.WriteTag如果对这个类扩展,加一个属性cut ,再根据cut的大小来截取标题的长度,我对WriteTag继承,重写doStartTag(), package org.apache.struts.taglib.bean; //注意,要这样写,不然会出错的
我觉得在读数据的时候截取标题的长度有一些不妥当,我刚才试图写了一个很简单的自定义标签,在struts中有这样一个标签<bean:write name="article" property="title"/>上面标签的意思是读取article对象中的title属性的值,现在对title的长度要求限制在一定范围之内,定义此标签的类是org.apache.struts.taglib.bean.WriteTag如果对这个类扩展,加一个属性cut ,再根据cut的大小来截取标题的长度,我对WriteTag继承,重写doStartTag(), package org.apache.struts.taglib.bean; //注意,要这样写,不然会出错的
复制内容到剪贴板 程序代码
StringTag extends WriteTag{....
public String setValue(String value) {
String tempProperty=value;
if(cut>0){
if(tempProperty.length()>=(cut+1)){
tempProperty=tempProperty.substring(0, cut) +"..."; }
}
public String setValue(String value) {
String tempProperty=value;
if(cut>0){
if(tempProperty.length()>=(cut+1)){
tempProperty=tempProperty.substring(0, cut) +"..."; }
}
Tags: bean:write 标签 自定义 自定义标签
这个是错误是由于response多次提交引起的,错误代码:
MyForward中已经执行了跳转。
之后的return请求依旧是跳转,但程序并不执行,控制台抛错!
复制内容到剪贴板 程序代码
new JSforForwardBean().MyForward(response,"contorl_news.do", Msg);
log.info("批处理完成");
return new ActionForward("/manager/news/shownews.jsp");
log.info("批处理完成");
return new ActionForward("/manager/news/shownews.jsp");
MyForward中已经执行了跳转。
之后的return请求依旧是跳转,但程序并不执行,控制台抛错!
struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file") 是null的问题分析
这两天连续看到有人提到:struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file")时候,得到一个Null,或者直接得到 java.lang.IllegalArgumentException 这样一个异常。
结合到自己以前也遇到过这个问题,于是上网搜索了一些资料,下面这位网友的说法我觉得有些道理,因此摘抄下来。(红色自己为别人的分析,我觉得有道理)
使用struts进行文件上传,如果有些参数没有完全定义在ActionForm中,需要从request.getParameter获取,在表单提交并且validate失败返回input页面时,这部分需要从request.getPrameter获取的参数数据都丢失了,即使再对request进行multipart解析也不能得到。
经过分析,发现struts的ActionServlet在接收到multipart请求之后,在RequestProcessor中会对request进行封装:MultiRequestWrapper,然后在Action执行完之后,又将已经封装的request重新还原。以下是部分代码,截直RequestProcessor:
这两天连续看到有人提到:struts中post方式上传文件,enctype="multipart/form-data",request.getParameter("file")时候,得到一个Null,或者直接得到 java.lang.IllegalArgumentException 这样一个异常。
结合到自己以前也遇到过这个问题,于是上网搜索了一些资料,下面这位网友的说法我觉得有些道理,因此摘抄下来。(红色自己为别人的分析,我觉得有道理)
使用struts进行文件上传,如果有些参数没有完全定义在ActionForm中,需要从request.getParameter获取,在表单提交并且validate失败返回input页面时,这部分需要从request.getPrameter获取的参数数据都丢失了,即使再对request进行multipart解析也不能得到。
经过分析,发现struts的ActionServlet在接收到multipart请求之后,在RequestProcessor中会对request进行封装:MultiRequestWrapper,然后在Action执行完之后,又将已经封装的request重新还原。以下是部分代码,截直RequestProcessor:
Tags: NULL multipart/form-data 上传