webアプリの変数渡しで問題が発生していますか?

このQ&Aのポイント
  • webアプリを作ってます。画面から入力し途中から変数が渡ってません。
  • 環境はjdk1.6、eclipse3.2、posgre8.3、tomcat6.0です。
  • ソースコードの最終行で変数が渡っていません。
回答を見る
  • ベストアンサー

webアプリを作ってます。画面から入力し途中から変数が渡ってません。

webアプリを作ってます。画面から入力し途中から変数が渡ってません。 どこが間違ってますか? 環境は jdk1.6 eclipse3.2 posgre8.3 tomcat6.0 です。 ソースはの一部 //パラメータ取得 teacherId = request.getParameter("teacherId"); name = redecode(request.getParameter("name")); faculty = redecode(request.getParameter("faculty")); department = redecode(request.getParameter("department")); System.out.println("tias0"); System.out.println("tias0" +teacherId); System.out.println("tias0" +name); System.out.println("tias0" +faculty); System.out.println("tias0" +department); if (teacherId==null || name==null || faculty==null) { getServletContext().getRequestDispatcher("/InputErrorJSP.jsp").forward(request, response); System.out.println("tias0.1"); System.out.println("tias0.1"+teacherId); System.out.println("tias0.1"+name); System.out.println("tias0.1"+faculty); System.out.println("tias0.1"+department); return; } System.out.println("tias0.2"); if (department==null) System.out.println("tias1"); //学科が入力されていない学科を空白 department=""; //Beans生成 System.out.println("tias1.1"); System.out.println("tias1.1"+teacherId); System.out.println("tias1.1"+name); System.out.println("tias1.1"+faculty); System.out.println("tias1.1"+department); 最終行で変数が渡ってません エクリプスコンソールログ tias0 tias09 tias0f tias0ff tias0fff tias0.2 tias1.1 tias1.19 tias1.1ftias1.1ff tias1.1 tib1 tib2 tib2f tib2ff tib2ここ tib2 tias1.29 tias1.2f tias1.2ff tias1.2ここ tias1.2 tias2

  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> if (department==null) > System.out.println("tias1"); > //学科が入力されていない学科を空白 > department=""; 自分でクリアしてるんだから、以下に値が入るわけがありません。 if文は{}が無いときは次の1文しか分岐処理とはみなしません。 nullの時だけクリアするならif文を{}で括る必要があります。 if (department==null) { System.out.println("tias1"); //学科が入力されていない学科を空白 department=""; }

wegrez
質問者

お礼

かっこをつけたら、正常に通るようになりました。ありがとうございます。

関連するQ&A

  • webアプリを作ってます。エラーがあります。

    webアプリを作ってます。エラーがあります。 jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。 jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。教えて... jspで引用符が必要と出てきます。どこがおかしいのかはっきりしません。 教えてください 原因がわからずで進みません。足りない部分がありますか? ネットでみたけどよくわかりませんでした。 中略 if (teacherId==null || name==null || faculty==null) { getServletContext().getRequestDispatcher("/InputErrorJSP.jsp").forward(request, response); return; } if (department==null) System.out.println("tias1"); //学科が入力されていない学科を空白 department=""; //Beans生成 TeacherInfoBeans teacherInfoBeans = new TeacherInfoBeans(); teacherInfoBeans.setTeacherId(teacherId); teacherInfoBeans.setName(name); teacherInfoBeans.setFaculty(faculty); teacherInfoBeans.setDepartment(department); System.out.println("tias2"); //登録 teacherInfoBeans.insert(); System.out.println("tias3"); //セッション登録 HttpSession session = request.getSession(true); session.setAttribute("teacerInfoBeans",teacherInfoBeans); System.out.println("tias4"); //結果を反映 getServletContext().getRequestDispatcher("/AddReportJSP.jsp").forward(request, response); System.out.println("tias4.5"); } 中略 <%@ page contentType="text/html; charset=Windows-31J" %> <head> <html> <title> 先生情報登録</title> </head> <body> <jsp:useBean id="teacherInfoBeans" class="info.searchman.TeacherInfoBeans" scope="session" /> <h1>先生情報登録</h1> 次の情報を登録しました。 <br> ユーザーID:<jsp:getProperty name=teacherInfoBeans" property="teacherId" /><br> 氏名:<jsp:getProperty name=teacherInfoBeans" property="name" /><br> 所属:<jsp:getProperty name=teacherInfoBeans" property="affiliation" /><br> </body> </html> エクリプス コンソールログ tias2 tib7 insert into teachers values ('3', 'c', 'cc', '') tias3 tias4 2010/04/28 18:21:05 org.apache.catalina.core.ApplicationDispatcher invoke 致命的: サーブレット jsp のServlet.service()が例外を投げました org.apache.jasper.JasperException: /AddReportJSP.jsp(14,30) 引用符が必要です 環境は jdk1.6 eclipse3.2 posgre8.3 tomcat6.0です。 参考書はSCCの改訂 Webアプリケーション構築: 7章問題です。

    • ベストアンサー
    • Java
  • webアプリを作ってます。

    webアプリを作ってます。 sqlの箇所で型の不一致stringからstringは変換できませんと 出てきます。 調べてもわかりませんでした。 どこが間違ってるのか教えてください。 package info.searchman; import 省略 public class Dbinsert extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; private ServletContext context; //private Connection connection; public void init(ServletConfig config) throws ServletException { context=config.getServletContext();} public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=Shift_JIS"); PrintWriter out=response.getWriter(); out.println("<html><head><title>Sample199</title></head><body>"); try { int type=0; String name=null; int price=0; String html=null; //Connection con = null; type=Integer.parseInt(request.getParameter("type")); //name= request.getParameterValues("name"); //String name = request.getParameter("name"); name = redecode(request.getParameter("name")); price=Integer.parseInt(request.getParameter("price")); Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection("jdbc:postgresql:postgres","postgres","gokui"); // ステートメントオブジェクトを生成 Statement stmt = con.createStatement(); String values2 = "(\'"+type+"\', \'"+name+"\', \'"+price+"\')"; String sql="INSERT INTO commodity values " + values2 ; stmt.executeUpdate(sql); //ResultSet rs = stmt.executeQuery(sql); out.println("データを登録しました。"); //out.println("</table>"); //rs.close(); stmt.close(); con.close(); } catch(Exception e) { context.log("denaositekoi"); e.printStackTrace(out); } out.println("</body></html>"); out.close(); } private String redecode(java.lang.String parameter) { // TODO 自動生成されたメソッド・スタブ return null; } }

    • ベストアンサー
    • Java
  • NULLが返ってこない…。

    原因がわからないため質問をさせて頂きます。 <%-- JSP <input type="text" name="name"> //名前 String name = request.getParameter("name"); Data data = new Data(); //コンストラクタをnew data.setName(name); --%> <%-- class(Bean) private String n = null; public void setName(String name){ if(name != null){ n = name; }else{ n = null; } public String getName(){ if(name != null){ return name; }else{ return name; } } --%> 値をgetParameter()メソッドで取得をして 値をsetName(name);でセットをしています。 セットした側でもし値があるのであれば その値を変数に格納。 もし値がなければnullを変数に格納しています。 しかし System.out.println(data.getName().equals("");//true System.out.println(data.getName().equals(null);//false; となりnullを返してくれません…。 このコードに何を足したらnullを返してくれるのか わかりません。 わかる方がいらっしゃいましたらよろしくお願い致します。

    • ベストアンサー
    • Java
  • 続き webアプリをつくってます。変数がなぜか渡りません。

    続き webアプリをつくってます。変数がなぜか渡りません。 見回ったのですが原因がわかりませんでした。 間違った箇所はどこですか。 package info.searchman; import java.io.*; import java.sql.*; //import java.util.*; public class ShinzinInfoTorokuBeans implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String Id; private String name; private String old; private String taiju; private String shintyo; private String other; //Constructor public ShinzinInfoTorokuBeans() { System.out.println("sitb constructor"); } // Setter Methods public void setId(String Id) { this.Id = Id; } public void setName(String name) { this.name = name; } public void setOld(String old) { this.old = old; } public void setTaiju(String taiju) { this.taiju = taiju; } public void setShintyo(String shintyo) { this.shintyo = shintyo; } public void setOther(String other) { this.other = other; } // Getting Methods public String getId() { return this.Id; } public String getName() { return this.name; } public String getOld() { return this.old; } public String getTaiju() { return this.taiju; } public String getShintyo() { return this.shintyo; } public String getOther() { return this.other; } //execute insert public void insert() { try { System.out.println("++++" +Id); System.out.println("tib7 insert"); //JDBC Driver Class.forName("org.postgresql.Driver"); Connection con = DriverManager.getConnection("jdbc:postgresql:postgres","postgres","gokui"); Statement stmt = con.createStatement(); String table = "testweb"; String values = "(\'"+Id+"\', \'"+name+"\', \'" +old+"\', \'"+taiju+"\', \'"+shintyo+"\', \'"+other+"\')"; //System.out.println("Id"+"name"+"old"+"taiju"+"shintyo+other"); String insertsql = "insert into "+table+" values " + values; //sql stmt.executeUpdate(insertsql); //db close stmt.close(); con.close(); } catch (Exception ex) { System.out.println("Exception insertでエラー: " + ex.getMessage()); } } } ここまで

    • ベストアンサー
    • Java
  • 変数について

    プロパティファイルから読み取った値をほかのクラスから使いたいと考えて以下のような2つのクラスを作成しました。 [プロパティ読み取り] public class Admin{ public static String HOST; public static String ACCOUNT_NAME; public static String ACCOUNT_PASSWD; /** * * @throws java.io.IOException */ public Admin() throws IOException{ try{ // read from properties file.      Properties pro = new Properties(); pro.load(new FileInputStream("プロパティファイル")); HOST = pro.getProperty("host"); ACCOUNT_NAME = pro.getProperty("account.name"); ACCOUNT_PASSWD = pro.getProperty("account.password"); }catch(Exception e){ System.out.println(e); } System.out.println("Host: "+ HOST); System.out.println("User: "+ ACCOUNT_NAME); System.out.println("Password: "+ ACCOUNT_PASSWD); } } [変数使用] public class Update { public static void main(String[] args) { System.out.println("Host: "+ Admin.HOST); System.out.println("User: "+ Admin.ACCOUNT_NAME); System.out.println("Password: "+ Admin.ACCOUNT_PASSWD); } } Adminクラスの出力では、変数に正しい値がセットされていますが、Updateクラスではnullが返ります。 スコープの問題かと思うのですが、どこをどのように改良したらよいかわかりません。 nullではなく、正しい値を取得するにはどのようにすればよいでしょうか

    • ベストアンサー
    • Java
  • 初歩的な質問なのですが

    分からないので教えてください。 (違うページからcreatNameをPOSTパラメータとして受け取る) String strCreatName = request.getParameter("creatName "); out.println(request.getParameter("creatName")); out.println(strCreatName); とすると、上はちゃんと名前が表示されるのですが、 下はnullになります。一体何が悪いのでしょうか?? よろしくお願いいたします。m(__)m

    • ベストアンサー
    • Java
  • ==の判定ができない

    System.out.println(request.getParameter("job")); の出力が2なのですが、 (request.getParameter("job")=="2")で判定されません。 なぜだか分かる人がいましたら、教えてください。 よろしくお願いします。

    • ベストアンサー
    • Java
  • [JAVA]Servlet → JSP 文字化け発生!

    こんばんわぁ♪ サーブレットにおきまして・・・ ErrMsg = "【認証エラー】MSP情報(キーコードorパスワード)が違います!"; response.sendRedirect("../F_LogInOut.jsp?ErrMsg=" + ErrMsg); とJSPに接続します。 JSPでは・・・ <%@ page contentType="text/html; charset=Shift_JIS" %> とし、 <% if (request.getParameter("ErrMsg") != null){ out.println(request.getParameter("ErrMsg")); } %> とこれを表示します。 しかし、うまく表示できません・・・ 何ででしょうか? お願いします、お教えください。

    • ベストアンサー
    • Java
  • webアプリを作ってます。 A result was returned

    webアプリを作ってます。 A result was returned web アプリを作ってます。 A result was returned when none エラー が出て原因がわかりませんでした。 どこがおかしいのか教えてください。 package info.searchman; import java.io.*; import java.sql.*; //import java.util.*; public class KensakuBeans implements Serializable { /** * */ private static final long serialVersionUID = 1L; private String Id; private String name; private String older; private String taiju; private String shintyo; private String other; private String[] results; //Constructor public void Kensaku2Beans() { System.out.println("sitb constructor"); } public void setName(String name) { this.name = name; System.out.println("dkb setter" +name); } // Getting Methods public String getId() { return this.Id; } public String getName() { return this.name; } public String getOld() { return this.older; } public String getTaiju() { return this.taiju; } public String getShintyo() { return this.shintyo; } public String getOther() { return this.other; } public int getCountOfResults() { System.out.println("ucb10"); if (results==null) return 0; else System.out.println("ucb10 else"); return results.length; } public String getResult(int index) { System.out.println("ucb11"); return results[index]; } //execute kensaku public void kensaku() { try { System.out.println("++++" +name); System.out.println("dkb7 insert"); //JDBC Driver Class.forName("org.postgresql.Driver"); System.out.println("dkb7 kensaku2"); Connection con = DriverManager.getConnection("jdbc:postgresql:postgres","postgres","gokui"); Statement stmt = con.createStatement(); System.out.println("dkb7 kensaku3"); String table = "test"; System.out.println(table); System.out.println("dkb7 kensaku4"); System.out.println(name); System.out.println("dkb7 kensaku5"); その2に続く http://okwave.jp/qa/q5933123.html

  • if文にて…。

    public class Sample{ public static void main (String[] args){ if(player1.hp < 0) { System.out.println("(+_+)"); }else if(hp <= 10){ System.out.println("(T_T)"); }else if(hp <= 100){ System.out.println("(^^)"); }else{ System.out.println("(^-^)"); } CharData player1 = new CharData("ジャガー",250,20); CharData player2 = new CharData("ハマー",10,30); System.out.println("NAME:"+player1.name); System.out.println("HP:"+player1.hp); System.out.println("MP:"+player1.mp); System.out.println("NAME:"+player2.name); System.out.println("HP:"+player2.hp); System.out.println("MP:"+player2.mp); } } このようなプログラムを作成してコンパイルしようとしても、 if(player1.hp < 0)と }else if (hp <= 10){ }else if (hp <= 100){ のplayer1のpとhpのhのところに ^ のマークがありシンボルを解決できません。と出てコンパイルが通りません。 どのようにすれば通るようになるのか教えてください。

    • ベストアンサー
    • Java