目录:
1、Eclipse中maven出现 Non-resolvable parent POM for…的问题解决办法。
2、SSH项目hql查询语句,遇到中文查询不成功,改成英文就成功了。
3、在提交表单返回数据时遇到这个问题No result defined for action cn.itcast.shop.categorysecond.adminaction.AdminCategorySecondAction and result input。
4、SSH为什么查询中文名称的图片,图片不显示。
5、为什么要点击两次登录才可以登录成功?

1、Eclipse中maven出现 Non-resolvable parent POM for…的问题解决办法

java项目如何搭建线上预警 java项目上线常见问题_jar包


原因是没有配置好maven,下面跟着配置一下

先检查有没有配置环境变量,然后在Eclipse上安装maven,打开Eclipse点击window>prferences之后会弹出

java项目如何搭建线上预警 java项目上线常见问题_java_02


java项目如何搭建线上预警 java项目上线常见问题_jar包_03


java项目如何搭建线上预警 java项目上线常见问题_jar包_04


java项目如何搭建线上预警 java项目上线常见问题_java项目如何搭建线上预警_05


这个时候你就把maven装在你的Eclipse中了,但是我们知道,maven是一个方便我们管理jar包的工具,我们需要用到的jar包都是从maven的中央仓库里下载的,但是我们不需要每次都需要去本地仓库里下载,当我们下载过一次之后就可以在我们的本地仓库中导入jar包,那么,怎么连接本地仓库呢?

第一步:你首先需要找到你的maven解压文件夹,然后打开conf子文件夹,然后编辑settings.xml

java项目如何搭建线上预警 java项目上线常见问题_java项目如何搭建线上预警_06


第二步:回到eclipse中点击window再点击preferences

java项目如何搭建线上预警 java项目上线常见问题_jar包_07


配置完以上步骤之后,重新创建就可以了

2、SSH项目hql查询语句,遇到中文查询不成功,改成英文就成功了
中文查询不成功的原因是中文输出是个乱码,乱码在数据库中不匹配,所以在后台中将取得的值转为utf-8格式,转换为中文就可以去数据库中查询出数据:
String newName=new String(cname.getBytes(“iso-8859-1”),“UTF-8”);
System.out.println(“测试newName的值:”+newName);
这是转换后的输出值:

这是未转换的输出值:

3、在提交表单返回数据时遇到这个问题No result defined for action cn.itcast.shop.categorysecond.adminaction.AdminCategorySecondAction and result input

原因是提交表单时action中的execute()方法没有执行,但是validate()却执行了,而且并没有报任何错,执行完之后,就直接退出了,程序并没有进入execute()。

几经调试,结果发现validate()返回的resultCode为INPUT,说明并没有通过验证。

结果方法是:在form表单里面加上 enctype="multipart/form-data"就可以解决了。

正是这个问题导致了表单提交失败,execute()未被执行。

java项目如何搭建线上预警 java项目上线常见问题_java_08


4、SSH为什么查询中文名称的图片,图片不显示

定义一个中文过滤器,步骤如下:
第一步:创建过滤器
import java.io.IOException;
import java.net.URLDecoder;
 
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
 
public class EncodingFilter implements Filter{
 
    String encoding=null;
     FilterConfig filterConfig=null;
     //销毁方法
     public void destroy() {
      // TODO Auto-generated method stub
      this.encoding=null;
      this.filterConfig=null;
     }
      
     //过滤处理方法
     public void doFilter(ServletRequest request, ServletResponse response,
       FilterChain chain) throws IOException, ServletException {
      // TODO Auto-generated method stub
       HttpServletRequest req = (HttpServletRequest) request;
       String uri = req.getRequestURI();
       String ch = URLDecoder.decode(uri, encoding);
       if(uri.equals(ch)) {
           chain.doFilter(req, response);
           return;
       }
       ch = ch.substring(req.getContextPath().length());
       filterConfig.getServletContext().getRequestDispatcher(ch).forward(req, response);
     }
 
     //初始化方法
     public void init(FilterConfig filterConfig) throws ServletException {
       
      this.filterConfig=filterConfig;
      this.encoding=filterConfig.getInitParameter("encoding");
     }
 
}
 第二步:在web.xml中配置此过滤器
<!-- 中文编码过滤器 -->
<filter>
 <filter-name>encodingFilter</filter-name><!--过滤器的名字-->
 <filter-class>com.hdsx.gispf.filter.EncodingFilter</filter-class><!--过滤器文件所在位置-->
 <init-param>
  <param-name>encoding</param-name><!--初始参数名,指定jsp页面所用 编码集-->
  <param-value>UTF-8</param-value><!--初始参数值 ,指定中文编码集-->
 </init-param>
</filter>
<!-- 过滤器 映射路径配置 -->
<filter-mapping>
 <filter-name>encodingFilter</filter-name>
 <url-pattern>/*</url-pattern><!-- 对所有目录进行中文过滤 -->
</filter-mapping>

java项目如何搭建线上预警 java项目上线常见问题_java项目如何搭建线上预警_09


java项目如何搭建线上预警 java项目上线常见问题_maven_10


5、为什么要点击两次登录才可以登录成功?

在点击事件里面加return false; 就可以了,看下图:

java项目如何搭建线上预警 java项目上线常见问题_maven_11


这样就可以解决需要点击两次按钮才可以登录成功的问题了