ストラッツ1で簡単なシステムの構築にチャレンジしています。
jspのページ遷移ができていること、データベースにアクセスして情報を検索できることを確認した後に、viewとmodelを書き換えて、アクションファイルでつないだのですが、エラーが出てつながりません。
どうすればアプリケーションが動くでしょうか。
ipEntry.jsp
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 4<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %> 5<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %> 6<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> 7 8 9 10<html:html> 11 12<body> 13 <h2>ぐへへ</h2> 14 <html:form action="/Ipe"> 15 <html:text name="IpForm" property="pcID" size="10"/> 16 <html:submit value="="/> 17 </html:form> 18</body> 19 20</html:html> 21
ipResult.jsp
jsp
1<%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3<!DOCTYPE html> 4<html> 5<head> 6<meta charset="UTF-8"> 7<title>Insert title here</title> 8</head> 9<body> 10 <bean:write name="IpForm" property="ip" /> 11</body> 12</html> 13
ipForm.java
java
1package form; 2 3import org.apache.struts.action.ActionForm; 4 5public class IpForm extends ActionForm { 6 private String pcID=""; 7 private String pcName=""; 8 private String ipAddress=""; 9 10 public IpForm(String pcID, String pcName, String ipAddress) { 11 // TODO 自動生成されたコンストラクター・スタブ 12 this.pcID=pcID; 13 this.pcName=pcName; 14 this.ipAddress=ipAddress; 15 } 16 17 public String getPcID() { 18 return pcID; 19 } 20 public void setPcID(String pcID) { 21 this.pcID = pcID; 22 } 23 public String getPcName() { 24 return pcName; 25 } 26 public void setPcName(String pcName) { 27 this.pcName = pcName; 28 } 29 public String getIpAddress() { 30 return ipAddress; 31 } 32 public void setIpAddress(String ipAddress) { 33 this.ipAddress = ipAddress; 34 } 35 36} 37
struts-config.xml
xml
1<?xml version="1.0" encoding="ISO-8859-1" ?> 2 3<!DOCTYPE struts-config PUBLIC 4 "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 5 "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> 6 7<struts-config> 8 9<!-- ================================================ Form Bean Definitions --> 10 11 <form-beans> 12 <form-bean type="form.CalcForm" name="CalcForm" /> 13 <form-bean type="form.CalcForm2" name="AAA" /> 14 <form-bean type="view.CalcView" name="CalcView" /> 15 <form-bean type="form.IpForm" name="IpForm" /> 16 </form-beans> 17 18 19<!-- =========================================== Global Forward Definitions --> 20 21 <global-forwards> 22 <!-- Default forward to "Welcome" action --> 23 <!-- Demonstrates using index.jsp to forward --> 24 <forward 25 name="welcome" 26 path="/pages/Calc2.jsp" /> 27 </global-forwards> 28 29 30<!-- =========================================== Action Mapping Definitions --> 31 32 <action-mappings> 33 34 <!-- 計算 --> 35 <action 36 path="/Calc" 37 type="action.CalcAction" 38 name="CalcForm" 39 scope="session" 40 validate="false" 41 input="Calc"> 42 <forward 43 name="success" 44 path="Calc" /> 45 </action> 46 47 <!-- 自作計算 --> 48 <action 49 path="/Calc2" 50 type="action.CalcAction2" 51 name="AAA" 52 scope="session"> 53 <forward 54 name="success" 55 path="/pages/Calc2.jsp" /> 56 </action> 57 58 <action 59 path="/Ipe" 60 type="action.IpAction" 61 name="IpForm" 62 scope="session"> 63 <forward 64 name="success" 65 path="/pages/ipResult.jsp" /> 66 </action> 67 68 69 </action-mappings> 70 71 72<!-- ============================================= Controller Configuration --> 73 74 <controller 75 processorClass="org.apache.struts.tiles.TilesRequestProcessor"/> 76 77 78<!-- ======================================== Message Resources Definitions --> 79 80 <message-resources parameter="MessageResources" /> 81 82 83</struts-config> 84 85
ipAction
java
1package action; 2 3import java.sql.Connection; 4import java.sql.DriverManager; 5import java.sql.PreparedStatement; 6import java.sql.ResultSet; 7import java.sql.SQLException; 8 9import javax.naming.NamingException; 10import javax.servlet.http.HttpServletRequest; 11import javax.servlet.http.HttpServletResponse; 12 13import org.apache.commons.beanutils.BeanUtils; 14import org.apache.struts.action.ActionForm; 15import org.apache.struts.action.ActionForward; 16import org.apache.struts.action.ActionMapping; 17 18import form.IpForm; 19 20public class IpAction { 21 public 22 ActionForward execute( 23 ActionMapping mapping, 24 ActionForm form, 25 HttpServletRequest request, 26 HttpServletResponse response) 27 28 throws 29 SQLException, 30 NamingException, 31 IllegalAccessException, 32 java.lang.reflect.InvocationTargetException, 33 Exception{ 34 35 request.setCharacterEncoding("UTF-8"); 36 String pcID =request.getParameter("pcID"); 37 String pcName =request.getParameter("pcName"); 38 String ipAddress =request.getParameter("ipAddress"); 39 40 final String JDBC_URL = "jdbc:mysql://localhost:3306/pcm?serverTimezone=JST"; 41 final String DB_USER = "root"; 42 final String DB_PASS = "y21password"; 43 44 try (Connection conn = DriverManager.getConnection(JDBC_URL, DB_USER, DB_PASS)){ 45 46 String sql 47 = "SELECT mng_pc.pc_id, pc_name, ip_address " + 48 "FROM pcm.mng_pc " + 49 "JOIN pcm.ip_address " + 50 "on mng_pc.pc_id=ip_address.pc_id where mng_pc.pc_id=?"; 51 52 PreparedStatement pStmt = conn.prepareStatement(sql); 53 pStmt.setString(1, pcID); 54 ResultSet rs = pStmt.executeQuery(); 55 56 57 while (rs.next()){ 58 IpForm iform = new IpForm(pcID,pcName,ipAddress); 59 BeanUtils.setProperty(iform, "id", rs.getString("pc_id")); 60 BeanUtils.setProperty(iform, "name", rs.getString("pc_name")); 61 BeanUtils.setProperty(iform, "ip", rs.getString("ip_address")); 62 request.setAttribute("IpForm", iform); 63 } 64 }catch (SQLException e) { 65 e.printStackTrace(); 66 return null; 67 } 68 return (mapping.findForward("success")); 69 } 70} 71
エラーメッセージ
タイプ 例外報告 メッセージ [pages/ipEntry.jsp] の処理中に行番号 [14] で例外が発生しました。 説明 サーバーは予期しない条件に遭遇しました。それはリクエストの実行を妨げます。 例外 org.apache.jasper.JasperException: [pages/ipEntry.jsp] の処理中に行番号 [14] で例外が発生しました。 11: 12: <body> 13: <h2>ぐへへ</h2> 14: <html:form action="/Ipe"> 15: <html:text name="IpForm" property="pcID" size="10"/> 16: <html:submit value="="/> 17: </html:form> Stacktrace: org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:499) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) filter.EncodingFileter.doFilter(EncodingFileter.java:30) 根本原因 javax.servlet.ServletException: javax.servlet.jsp.JspException: クラス form.IpForm のbeanを生成する際の例外: {1} org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:666) org.apache.jsp.pages.ipEntry_jsp._jspService(ipEntry_jsp.java:159) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) filter.EncodingFileter.doFilter(EncodingFileter.java:30) 根本原因 javax.servlet.jsp.JspException: クラス form.IpForm のbeanを生成する際の例外: {1} org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:487) org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:457) org.apache.jsp.pages.ipEntry_jsp._jspx_meth_html_005fform_005f0(ipEntry_jsp.java:219) org.apache.jsp.pages.ipEntry_jsp._jspx_meth_html_005fhtml_005f0(ipEntry_jsp.java:185) org.apache.jsp.pages.ipEntry_jsp._jspService(ipEntry_jsp.java:144) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329) javax.servlet.http.HttpServlet.service(HttpServlet.java:741) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) filter.EncodingFileter.doFilter(EncodingFileter.java:30) 注意 原因のすべてのスタックトレースは、サーバのログに記録されています
beanができていないとのことなので、ipActionのwhileの下りあたりがいけないのかとも思いましたが、ここからどう直していけばよいのかわからないです。
お知恵を拝借いただけると幸いです。
以下環境
Windows
Microsoft Windows [Version 10.0.17763.737]
Widnows10 Pro version 1809
Eclipse
Version: 2019-09 R (4.13.0)
Build id: 20190917-1200
Tomcat
9.0
Java
C:\Program Files (x86)\Java\jre1.8.0_221
C:\Program Files (x86)\Java\jdk1.5.0
Mysql
mysql Ver 8.0.17 for Win64 on x86_64 (MySQL Community Server - GPL)
mysql-connector-java-8.0.17.jar
Struts
Specification-Version: 1.2.9(first struts プロジェクト)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/27 07:30