public_saのプロフィール
- ベストアンサー数
- 13
- ベストアンサー率
- 52%
- お礼率
- 42%
- 登録日2007/02/08
- JSPで、PG上のstrutsオブジェクトについて
動作環境 OS:WindowsXP Home Edition SP3 Browser:IE8 OpenSoftWare:Tomcat6.0.29 Framework:Struts2.2.1 Tool:Eclipse3.2.0 JavaPGで、out.println関数を使用して、strutsのオブジェクト書いてもブラウザ上で出力されません。 直接strutsタグで、書くとブラウザ上に正常に表示されます。 Java側で、対応されていないのでしょうか? どなたか、ご指導願います。 ■事象例 1.「a.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <% String strtest = "#{'1':'1','2':'2'}"; out.println("<s:select name=\"cbotest\" list=\"#{'1':'1','2':'2'}\"/>"); %> </s:form> </body> </html> 2.「b.jsp」実行 <%@ page contentType="text/html; charset=Shift_JIS"%> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Test</title> </head> <body> <s:form align="center" action="Test" theme="simple"> <s:select name="cbotest" list="#{'1':'1','2':'2'}"/> </s:form> </body> </html> 3.IE8上の表示(画像添付参照) 1.「a.jsp」結果 何も出力されません。 2.「b.jsp」結果 [1[▼]] [1■■] [2 ]
- JOURNALRECORD 猫パンチでノックアウト
有名な 猫でもわかるプログロミング Windows SDK編 第2部 第165章 ジャーナルレコードとプレイバックその2 http://homepage2.nifty.com/c_lang/sdk2/sdk_165.htm で勉強させて頂いております 親プログラムのメニューを押下するとDLLのStartRecord()に来ます(1) その中でSetWindowsHookEx()を呼びますが、戻り値のhHookがNULLになってしまいます(2) そこでエラー情報を表示(//*の部分)させると『アクセスが拒否されました』となります SetWindowsHookEx()のアクセス拒否の原因をネットで調べてみましたが何処にも記載が見つかりません もう3日も嵌まり込んでいます、教えてください、お願いします なおコードは親プログラム・DLLともにマルチバイトを指定しております #include <windows.h> #include "hook04x.h" #define MAX_RECORD 2000 HINSTANCE hInst; HHOOK hHook; HWND hWnd; BOOL bHook = FALSE; //フック中 BOOL bRecord = FALSE; //記録済かどうか int n; EVENTMSG MyEvent[MAX_RECORD]; DWORD dwStart; DWORD dwAdjust; int WINAPI DllMain(HINSTANCE hInstance, DWORD fdReason, PVOID pvReserved) { hInst = hInstance; return TRUE; } //単にこのdllのインスタンスハンドルをグローバル変数にコピーしているだけです。 EXPORT BOOL StartRecord() .........(1) { memset(MyEvent, 0, sizeof(EVENTMSG));//構造体を0で初期化 //*LPVOID lpMsgBuf; //*SetLastError(NO_ERROR); //エラー情報をクリアする hHook = SetWindowsHookEx(WH_JOURNALRECORD, (HOOKPROC)MyHookProc, hInst, 0); ....(2) //*FormatMessage( //エラー表示文字列作成 //*FORMAT_MESSAGE_ALLOCATE_BUFFER | //*FORMAT_MESSAGE_FROM_SYSTEM | //*FORMAT_MESSAGE_IGNORE_INSERTS, //*NULL, GetLastError(), //*MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), //*(LPTSTR) &lpMsgBuf, 0, NULL); //*MessageBox(NULL, (const char*)lpMsgBuf, NULL, MB_OK); //メッセージ表示//* LocalFree(lpMsgBuf); if (hHook == NULL) { MessageBox(hWnd, "JOURNALRECORDフックに失敗しました", "Error", MB_OK); return FALSE; } dwStart = GetTickCount(); n = 0; bHook = TRUE; bRecord = TRUE; return TRUE; } EXPORT BOOL StartPlay() { 【途中省略】 EXPORT LRESULT CALLBACK MyHookProc(int nCode, WPARAM wp, LPARAM lp) { EVENTMSG *lpEM; if (nCode == HC_ACTION) { lpEM = (EVENTMSG *)lp; if (lpEM->message == WM_KEYDOWN && LOBYTE(lpEM->paramL) == VK_CANCEL) { PostMessage(hWnd, WM_RECORD_END, 0, 0); PostMessage(hWnd, WM_END_HOOK, 0, 0); return TRUE; } MyEvent[n].hwnd = lpEM->hwnd; MyEvent[n].message = lpEM->message; MyEvent[n].paramH = lpEM->paramH; MyEvent[n].paramL = lpEM->paramL; MyEvent[n].time = lpEM->time; n++; if (n >= MAX_RECORD-1) { PostMessage(hWnd, WM_RECORD_MAX, 0, 0); PostMessage(hWnd, WM_END_HOOK, 0, 0); return TRUE; } return TRUE; } return CallNextHookEx(hHook, nCode, wp, lp); }
- javascriptを勉強するための本
ブログ改造のために、javascriptを一から勉強しようと思います。 htmlやCSSについては大抵理解できているので、もう少し踏み込んでjavascriptを用いたブログの改造をしたいんです。 そこでみなさんにお願いしたいのは、ブログやホームページを改造するときに必要になるようなjavascriptの知識について載せている本を教えていただきたいのです。 もしそんな一部に特化したような本がないのであれば、みなさんオススメのjavascriptの本を教えていただけると助かります。 どうかよろしくお願いします。
- 締切済み
- JavaScript
- tynnimo
- 回答数1
- bodyタグのfocus
jqueryで $('body').focus(function() { alert('focus'); }); などと記述しても、フォーカス時にうまくアラートが表示されません。 Bodyタグにonfocusとして直接書くと動作するのですが、何か違いがあるのでしょうか? よろしくお願いします。
- ベストアンサー
- JavaScript
- sakukou10
- 回答数5
- javaで絵チャットを作っています。
初めての投稿です。よろしくお願いします。 javaで絵チャットを作っているのですが、うまく片方で書いた絵をもう片方に送って描画することがうまくいっていません。 一応、チャットはうまくいって入るのですが。。。。。座標を一度文字列に直してチャットの文字列と区別するのに座標は文字列の頭に%%%をつけて送信しています。 教えてください。よろしくお願いします。 /ChatServer/ /* 引数の文字列を全てのチャネルに出力する */ synchronized void broadcast(String s) { int i, n; MyChannel mchannel; // 全チャネルに対して文字列を送信 for (i = 0, n = channelSet.size(); i < n; i++) { mchannel = (MyChannel) channelSet.get(i); // チャネルが有効なら送信、無効ならチャネルを除去 if (mchannel.alive) { if(s.startsWith("%%%")) mchannel.sendObj(s); else mchannel.sendStr(s); } else { channelSet.remove(i); i--; n--; }} /ChatClient/ getContentPane().add(input = new JTextField(), BorderLayout.SOUTH); // 送信処理 input.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ev) { String s = input.getText(); input.setText(""); try { // 改行文字を\r\nに統一する if (s.endsWith("\r\n")) { wt.write(s, 0, s.length()); } else { if (s.endsWith("\n")) { wt.write(s, 0, s.length() - 1); } else { wt.write(s, 0, s.length()); } wt.write('\r'); wt.write('\n'); } // バッファをフラッシュする wt.flush(); } catch (IOException e) { new RuntimeException(); }}}); // 受信処理 public void run() { String str; try { while (true) { str = rd.readLine(); System.out.println(str);// 確認用 /* 座標の要素かテキストの要素かを判定する */ /* 座標を操作 */ if (str.startsWith("%%%")) { String[] strAry = str.split(","); // 分割された文字列の表示 for (int i = 0; i < strAry.length; i++) { System.out.println(strAry[i]); } /* Stringをint型に変換 */ mc.mode = Integer.parseInt(strAry[1]); mc.PX = Integer.parseInt(strAry[2]); mc.PY = Integer.parseInt(strAry[3]); mc.x = Integer.parseInt(strAry[4]); mc.y = Integer.parseInt(strAry[5]); mc.RX = Integer.parseInt(strAry[6]); mc.RY = Integer.parseInt(strAry[7]); repaint(); } else { log.append(str + '\n'); log.setCaretPosition(log.getText().length());// スクロールバーを手動で下げる } } } catch (IOException e) { new RuntimeException(); } /MyCanvas/ public void sender() { // サーバとチャンネルに送信する try { /* intをStringに変換 */ String strmode = String.valueOf(mode); String strPX = String.valueOf(PX); String strPY = String.valueOf(PY); String strX = String.valueOf(x); String strY = String.valueOf(y); String strRX = String.valueOf(RX); String strRY = String.valueOf(RY); String Zahyou = new String("%%%" + "," + strmode + "," + strPX+ "," + strPY + "," + strX + "," + strY + "," + strRX + ","+ strRY); System.out.println(Zahyou); mchnl.sendObj(Zahyou); } catch (Exception e) { new RuntimeException(); }} /MyChannel/ /* クライアントへ文字列を出力する */ synchronized void sendStr(String str) { //System.out.println("sending String info from server to client"); try { // 改行文字を\r\nに統一する if (str.endsWith("\r\n")) { wt.write(str, 0, str.length()); } else { if (str.endsWith("\n")) { wt.write(str, 0, str.length() - 1); } else { wt.write(str, 0, str.length()); } wt.write('\r'); wt.write('\n'); } wt.flush(); } catch (IOException e) { disconnect(); } } /* クライアントへ座標を出力する */ synchronized void sendObj(String Zahyou) { try { if(Zahyou.endsWith("\r\n")){ wt.write(Zahyou, 0, Zahyou.length()); }else{ if (Zahyou.endsWith("\n")) { wt.write(Zahyou, 0, Zahyou.length() - 1); } else { wt.write(Zahyou, 0, Zahyou.length()); } wt.write('\r'); wt.write('\n'); } wt.flush(); } catch (IOException e) { disconnect(); } } /* クライアントからの入力を受け付ける */ public void run() { String str; InputStreamReader in; try { // ソケットから入出力ストリームを得る rd = new BufferedReader(new InputStreamReader(socket.getInputStream())); wt = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())); // ユーザー名を入力してもらう sendStr(" 名前を入力してください "); handle = rd.readLine(); // 入力待ちのループ while (true) { // 文字列入力を待つ str = rd.readLine(); /*座標の要素かテキストの要素かを判別*/ if (str.startsWith("%%%")) {chatsv.broadcast(str); } else chatsv.broadcast("[" + handle + "] " + str); }
- 締切済み
- Java
- kensuke_1234
- 回答数1