網上營業廳系統操作說明
1.登錄系統
2.輸入計劃類型、提箱單位、提箱日期、提箱時間段、費用截止日期、聯系人電話
3.選箱:輸入船名、航次、提單號,點擊檢索
4.海關放行:點擊校核
5.保存計劃
6.計費:點擊確認支付,跳轉至支付頁面
|
B2B支付
1.登陸中國銀行企業網銀系統
2.進入支付頁面,確認支付金額,提交訂單
3.企業財務人員進入支付審核系統
4. 企業財務人員復合相應訂單
5. 企業財務人員授權相應訂單
6.完成訂單授權,查詢訂單
7.完成B2B支付,生成訂單號,公司收到推送通知,生成提箱計劃 |
B2C支付
1.登陸中國銀行個人網銀系統
2.選擇付款賬戶,提交訂單
3.完成B2C支付,生成訂單號,公司收到推送通知,生成提箱計劃 |
附:詳細操作步驟
第一部分 用戶注冊
第二部分 提重辦理
2.1 登陸系統,進入“重箱出場計劃”頁面。點擊頁面左側“提重辦理” ,頁面右側出現“重箱出場計劃”。
2.2 選擇“計劃類型”,輸入“提箱單位”,選擇“提箱日期”,選擇“提箱時間段”,選擇“費用截止日期”,輸入“聯系人電話”。
2.3 點擊“選箱” ,進入選箱頁面。輸入“船名”,“航次”,“提單號” ,點擊“檢索” ,出現箱號列表,選擇相應集裝箱。
,點擊“確認” ,返回“重箱出場計劃”頁面。
2.4 點擊“海關放行” ,進入“報關單信息”頁面。(注:進行“增、刪、改“操作后,點擊”保存,報關單詳細中可添加修改箱號),點擊“校核” ,核對海關放行信息,返回“重箱出場計劃”頁面。
2.5 點擊“保存計劃” ,出現保存成功提示 。
2.6 點擊“計費” ,進入“費用統計”頁面。確認統計箱號和費用總計無誤后,點擊“確認支付” ,進入中國銀行網上支付頁面。
第三部分 中國銀行網上支付(B2B或B2C)
3.1B2B 企業支付(注:由于銀行網上支付操作規定,請于在3個小時內完成訂單授權,否則需要重新提交訂單)
3.1.1 進入中國銀行企業網上支付頁面,輸入“用戶名”,“密碼”,“驗證碼” ,點擊“確認”,進入支付頁面。
3.1.2 在支付頁面確認支付金額,輸入動態口令
,點擊“確定”,完成訂單提交。
3.1.3 企業財務審核人員進入“支付審核”頁面,輸入“用戶名”,“密碼”,“動態口令”,點擊“登錄”進入網上銀行系統 。
3.1.4 點擊“電子商務”,“B2B支付服務”,“訂單復核”進行訂單復合。 。點擊相應訂單號進入復合頁面 ,在“復核意見”選項中選擇“復合通過”,點擊“確定”。
3.1.5 點擊“訂單授權”頁面,選擇相應訂單號進行授權操作頁面 ,在“授權意見”選項中選擇“授權通過”,點擊“確定”進入授權頁面。
3.1.6 輸入“動態口令” ,點擊“確定”,完成授權。訂單內容可在“訂單查詢”選項中查詢。
3.1.7 企業完成B2B網上支付,生成訂單號,公司收到推送通知,生成提箱計劃。
3.2個人支付B2C(推薦使用)
3.2.1 進入中國銀行個人網上支付頁面,輸入“用戶名”,“密碼”,“驗證碼” ,點擊“確認”,進入支付頁面。
3.2.2 進入支付頁面,選擇“付款賬戶” ,點擊“確定”,輸入“手機交易碼”和“動態口令” ,點擊“確定”。
3.2.3 個人完成B2C網上支付,生成訂單號,公司收到推送通知,生成提箱計劃。
function postToNethall(PARAMS) {
var pay_no;
var money;
var checkcode;
var feeetype;
var old_pay_no;
var old_money;
var splitAll = new Array();
//測試 PARAMS = "pay_no=jmW9n%2fJCCDo%3d&money=wB1k5PqI0oU%3d&checkcode=nhIAV2UrfsUreUdGf0wS3kcPYe5P6iTZ%2boRAgdGvPLN33eTEKYp75j%2f%2bhT7xSYg%2be%2bHGf2MZyyAcYpRMl6ng3ireWvV%2bj5kRZkldFCGF8nhE1ANvxGBMBQ%3d%3d&feeetype=Q1dQXRPDVOc%3d&old_pay_no=0GUN11ebpe4%3d&old_money=0GUN11ebpe4%3d";
splitAll = PARAMS.split("&");
var arrayvar;
for( var isplit = 0 ; isplit < splitAll.length ; isplit++){
arrayvar = new Array();
arrayvar = splitAll[isplit].split("=");
for(var i = 0; i < arrayvar.length;i++){
if(arrayvar[i] = "pay_no"){
pay_no = arrayvar[i+1];
//alert(pay_no);
break;
}
if(arrayvar[i] = "money"){
money = arrayvar[i+1];
// alert(money);
break;
}
if(arrayvar[i] = "checkcode"){
checkcode = arrayvar[i+1];
// alert(checkcode);
break;
}
if(arrayvar[i] = "feeetype"){
feeetype = arrayvar[i+1];
// alert(feeetype);
break;
}
if(arrayvar[i] = "old_pay_no"){
old_pay_no = arrayvar[i+1];
// alert(old_pay_no);
break;
}
if(arrayvar[i] = "old_money"){
old_money = arrayvar[i+1];
// alert(old_money);
break;
}
}
}
var name = "test"
var tempForm = document.createElement("form");
tempForm.id="tempForm1";
tempForm.method="post";
//tempForm.action=" tempForm.action=" tempForm.target=name;
var hideInput1 = document.createElement("input");
hideInput1.type="hidden";
hideInput1.name= "pay_no"
hideInput1.value= "EeM1whUd4q4%3d";
tempForm.appendChild(hideInput1);
var hideInput2 = document.createElement("input");
hideInput2.type="hidden";
hideInput2.name= "money"
hideInput2.value= "i6hN5C6DIN4%3d";
tempForm.appendChild(hideInput2);
var hideInput3 = document.createElement("input");
hideInput3.type="hidden";
hideInput3.name= "checkcode"
hideInput3.value= "nhIAV2UrfsWnq1I38RKp5%2b46w4bxah62p6tSN%2fESqefuOsOG8WoetiUOtz2bp40id93kxCmKe%2bY%2f%2foU%2b8UmIPnvhxn9jGcsgHGKUTJep4N4q3lr1fo%2bZEWZJXRQhhfJ4RNQDb8RgTAU%3d";
tempForm.appendChild(hideInput3);
var hideInput4 = document.createElement("input");
hideInput4.type="hidden";
hideInput4.name= "feeetype"
hideInput4.value= "Q1dQXRPDVOc%3d";
tempForm.appendChild(hideInput4);
var hideInput5 = document.createElement("input");
hideInput5.type="hidden";
hideInput5.name= "old_pay_no"
hideInput5.value= "0GUN11ebpe4%3d";
tempForm.appendChild(hideInput5);
var hideInput6 = document.createElement("input");
hideInput6.type="hidden";
hideInput6.name= "old_money"
hideInput6.value= "0GUN11ebpe4%3d";
tempForm.appendChild(hideInput6);
tempForm.attachEvent("onsubmit",function(){ openWindow(name); });
document.body.appendChild(tempForm);
tempForm.fireEvent("onsubmit");
alert("tempForm");
tempForm.submit();
document.body.removeChild(tempForm);
}
web.xml
<filter>
<filter-name>AuthorizationFilter</filter-name>
<filter-class>com.cenin.util.filter.AuthorizationFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AuthorizationFilter</filter-name>

<url-pattern>/**//*</url-pattern>
</filter-mapping>
AuthorizationFilter.java
public class AuthorizationFilter implements Filter
{

public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException
{

HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) resp;
HttpSession session = request.getSession();

String servletPath = request.getServletPath();//獲得如: /baseinfo/codeBillTypeList.action

Object user = session.getAttribute(Config.getConfig().getSessionUser());

//判斷權限
boolean passed = true;


/*if(user == null && (servletPath.indexOf("action")>=0 )){
passed = false;
String[] noLimit = Config.getConfig().getNoFilter().split(";");
for(int i=0;i<noLimit.length;i++){
if(servletPath.matches(noLimit[i])){
System.out.println(servletPath + " " + noLimit[i]);
passed = true;
break;
}
}
}*/
request.getRequestDispatcher(servletPath).forward(request, response);//控制struts or xwork跳轉

// if(passed)
// chain.doFilter(request, response);
// else
// {
// String modelType = request.getParameter("model.bmoduleType");
// String particalUrl = request.getParameter("particalUrl");
// session.setAttribute("model.bmoduleType", modelType);
// session.setAttribute("particalUrl", particalUrl);
// String url = Config.getConfig().getPageLogin();
// RequestDispatcher dispatcher = request.getRequestDispatcher(url);
// dispatcher.forward(request, response);
// }
}
public void init(FilterConfig filterConfig) throws ServletException

{

}
public void destroy()

{

}

}
xwork.xml添加
<include file="xwork-onlinehall.xml"/>
xwork-onlinehall.xml文件內容:
<package name="onlinehall" extends="cenin" namespace="/onlinehall" externalReferenceResolver="com.atlassian.xwork.ext.SpringServletContextReferenceResolver">
<action name="myOrderLoadList" class="com.cenin.web.action.onlinehall.MyOrderAction" method="myOrderLoadList">
<result name="success" type="freemarker">/onlinehall/myOrder.ftl</result>
</action>
</package>
MyOrder.java內容

public class MyOrderAction extends BaseActionSupport
{

public String myOrderLoadList() throws Exception
{
}
}

public List xmlElements(String xmlDoc)
{
//創建一個新的字符串
StringReader read = new StringReader(xmlDoc);
//創建新的輸入源SAX 解析器將使用 InputSource 對象來確定如何讀取 XML 輸入
InputSource source = new InputSource(read);
//創建一個新的SAXBuilder
SAXBuilder sb = new SAXBuilder();
List list = new ArrayList();

try
{
//通過輸入源構造一個Document
Document doc = sb.build(source);
//取的根元素
Element root = doc.getRootElement();
System.out.println(root.getName());//輸出根元素的名稱(測試)
//得到根元素所有子元素的集合
List jiedian = root.getChildren();
//獲得XML中的命名空間(XML中未定義可不寫)
Namespace ns = root.getNamespace();
Element et = null;
DataModel dataModel = new DataModel();
Collections c ;
Ctnfee ctnfee = null;

for(int i=0;i<jiedian.size();i++)
{
et = (Element) jiedian.get(i);//循環依次得到子元素
ctnfee = new Ctnfee();

/** *//**//*
* 無命名空間定義時
* et.getChild("users_id").getText();
* et.getChild("users_address",ns).getText()
*/

/**//*System.out.println(et.getChild("users_id",ns).getText());
System.out.println(et.getChild("users_address",ns).getText());*/
System.out.println(et.getChild("p_id",ns).getText());
System.out.println(et.getChild("ctnno",ns).getText());
ctnfee.setP_id(et.getChild("p_id",ns).getText());
ctnfee.setCtnno(et.getChild("ctnno",ns).getText());
ctnfee.setFee_type(et.getChild("fee_type",ns).getText());
ctnfee.setStart_time(et.getChild("start_time",ns).getText());
ctnfee.setEnd_time(et.getChild("end_time",ns).getText());
ctnfee.setFee(Double.parseDouble(et.getChild("fee",ns).getText()));
ctnfee.setFee_count(Double.parseDouble(et.getChild("fee_count",ns).getText()));
ctnfee.setCpid(et.getChild("cpid",ns).getText());
ctnfee.setFee_name(et.getChild("fee_name",ns).getText());
ctnfee.setFee_rate_id(Double.parseDouble(et.getChild("fee_rate_id",ns).getText()));
ctnfee.setJffs(et.getChild("jffs",ns).getText());
ctnfee.setIf_hand(et.getChild("if_hand",ns).getText());
ctnfee.setSfid(et.getChild("sfid",ns).getText());
ctnfee.setWt_company(et.getChild("wt_company",ns).getText());
ctnfee.setOpid(et.getChild("opid",ns).getText());
ctnfee.setCy(et.getChild("cy",ns).getText());
ctnfee.setIf_bf(et.getChild("if_bf",ns).getText());
ctnfee.setDays_count(et.getChild("days_count",ns).getText());
ctnfee.setIf_collect(Double.parseDouble(et.getChild("if_collect",ns).getText()));
ctnfee.setIf_dd(et.getChild("if_dd",ns).getText());
ctnfee.setDd_fee_name(et.getChild("dd_fee_name",ns).getText());
ctnfee.setSpec_sign(et.getChild("spec_sign",ns).getText());
list.add(ctnfee);
counttotal = counttotal +Double.parseDouble(et.getChild("fee_count",ns).getText());
}

/** *//**//*
* 如要取<row>下的子元素的名稱
*/
et = (Element) jiedian.get(0);
List zjiedian = et.getChildren();

for(int j=0;j<zjiedian.size();j++)
{
Element xet = (Element) zjiedian.get(j);
System.out.println(xet.getName());
}

} catch (JDOMException e)
{
// TODO 自動生成 catch 塊
e.printStackTrace();

} catch (IOException e)
{
// TODO 自動生成 catch 塊
e.printStackTrace();
}
return list;
}

public static void main(String[] args) throws IOException
{

String bocNo1="6124";
String orderNos1="104110059475569";
String signData1="eeb5705cffb3820d8cf8b6cae5774730_21ec2425-883b-4974-a036-360ddec9fb9a"+
"MIIDuAYJKoZIhvcNAQcCoIIDqTCCA6UCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCCAmww"+
"ggJoMIIB0aADAgECAhB9RyYZTkOnSvrpIjNNqTqUMA0GCSqGSIb3DQEBBQUAMFoxCzAJBgNVBAYT"+
"AkNOMRYwFAYDVQQKEw1CQU5LIE9GIENISU5BMRAwDgYDVQQIEwdCRUlKSU5HMRAwDgYDVQQHEwdC"+
"RUlKSU5HMQ8wDQYDVQQDEwZCT0MgQ0EwHhcNMTEwNjE4MTAyNjI0WhcNMjEwNDI2MTAyNjI0WjBH"+
"MQswCQYDVQQGEwJDTjEWMBQGA1UEChMNQkFOSyBPRiBDSElOQTENMAsGA1UECxMEVEVTVDERMA8G"+
"A1UEAx4IbUuL1VVGYjcwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMNF+o1mNobAG60gm9cG"+
"DbOuq5KLKsRF/jjstfjzorz1qQdiY5ibCu3ngk2VHxAf3JV7beDw7OuWjxIaxntsWiOaFhujSlxS"+
"7dyefk4uOwHWuFOoZGIG/scXcjU74NLdSM0ptj42SfdMsbqzcQ8kqvV7MbPqJW8ztlefmafdYpJh"+
"AgMBAAGjQjBAMB8GA1UdIwQYMBaAFHjxtvO9ykQNfC/o0jbI/gawwPmfMB0GA1UdDgQWBBS6HTP9"+
"uBZMvHzqidY/hp7m9hx0zTANBgkqhkiG9w0BAQUFAAOBgQAyLyYGKopiY0fSaTM/fElg/3JRrOcv"+
"8xrNNr5tdym61W44d3Uh53zD+5cOhQnQfYEE6d6QeiRicNi3kwh3mr9BX0+H7uBq4SQ9Gq99gk3E"+
"tdLe4EMIZbE01SPzKViUE2A+7ewffHgFy5i4VweoB9MmppaF1RPj0pGftFp6d0+dWDGCARQwggEQ"+
"AgEBMG4wWjELMAkGA1UEBhMCQ04xFjAUBgNVBAoTDUJBTksgT0YgQ0hJTkExEDAOBgNVBAgTB0JF"+
"SUpJTkcxEDAOBgNVBAcTB0JFSUpJTkcxDzANBgNVBAMTBkJPQyBDQQIQfUcmGU5Dp0r66SIzTak6"+
"lDAJBgUrDgMCGgUAMA0GCSqGSIb3DQEBAQUABIGAa6dnWBArRLTMDYcWeYYLBFRVIeYX0WkQHniU"+
"AN4umk64gC/4r96v5BVm7tuetH2QtqVJIelvHZZKnvQsqAG108TkPR9+12JbxApu/eE5DTXmXqdj"+
"zfrQE7sk7rCBdqbFjqkETzU7oAwfqCuZGa6q+4TDWvdmYkM33ZdmtFJ53a0=";

/** *//**
java中兩種發起POST請求,并接收返回的響應內容的方式 2011-07-22 09:43:29| 分類: 默認分類 | 標簽: |字號大
中
小 訂閱
1、利用apache提供的commons-httpclient-3.0.jar包

代碼如下:

* 利用HttpClient發起POST請求,并接收返回的響應內容
*
* @param url 請求鏈接
* @param type 交易或響應編號
* @param message 請求內容
* @return 響應內容
*/
// public String transRequest(String url, String type, String message) {
// 響應內容
String result = "";
// 定義http客戶端對象--httpClient
HttpClient httpClient = new HttpClient();
// 定義并實例化客戶端鏈接對象-postMethod
PostMethod postMethod = new PostMethod("http://180.168.146.75:81/PGWPortal/CommonB2BQueryOrder.do");

try
{
// 設置http的頭
// postMethod.setRequestHeader("ContentType",
// "application/x-www-form-urlencoded;charset=UTF-8");
// 填入各個表單域的值
NameValuePair bocNo = new NameValuePair("bocNo", bocNo1);
NameValuePair orderNos = new NameValuePair("orderNos", orderNos1);
NameValuePair signData = new NameValuePair("signData", signData1);
// postMethod.setRequestBody( new NameValuePair[] {bocNo, orderNos,signData});

NameValuePair[] data =
{ bocNo,
orderNos,signData };
// NameValuePair[] data = { bocNo, orderNos,signData);
// 將表單的值放入postMethod中
postMethod.setRequestBody(data);
// 定義訪問地址的鏈接狀態
int statusCode = 0;

try
{
// 客戶端請求url數據
statusCode = httpClient.executeMethod(postMethod);

} catch (Exception e)
{
e.printStackTrace();
}
// 請求成功狀態-200

if (statusCode == HttpStatus.SC_OK)
{

try
{
result = postMethod.getResponseBodyAsString();
System.out.println(result);

} catch (IOException e)
{
e.printStackTrace();
}

} else
{
System.out.println("請求返回狀態:" + statusCode);
}

} catch (Exception e)
{
System.out.println(e.getMessage());

} finally
{
// 釋放鏈接
postMethod.releaseConnection();
httpClient.getHttpConnectionManager().closeIdleConnections(0);
}

/**//* GetMethod authpost1 = new GetMethod("http://180.168.146.75:81/PGWPortal/CommonB2BQueryOrder.do" );

httpClient.executeMethod(authpost1);
result = authpost1.getResponseBodyAsString();
System.out.println(result);*/
//查看cookie信息


/**//*Cookie[] cookies = httpClient.getState().getCookies();
httpClient.getState().addCookies(cookies);

if (cookies.length == 0) {

System.out.println("None");

} else {

for (int i = 0; i < cookies.length; i++) {

System.out.println(cookies[i].toString());

}

}*/
}
Tomcat部署Web應用方法總結
在Tomcat中部署Java Web應用程序有兩種方式:靜態部署和動態部署。

在下文中$CATALINA_HOME指的是Tomcat根目錄。

一、靜態部署


靜態部署指的是我們在服務器啟動之前部署我們的程序,只有當服務器啟動之后,我們的Web應用程序才能訪問。

以下3種方式都可以部署:(以PetWeb項目為例說明,PetWeb目錄假設是F:/PetWeb)

1.利用Tomcat自動部署


將PetWeb目錄拷貝到$CATALINA_HOME/webapps下,然后啟動服務器就可以了,Tomcat啟動時將自動加載應用。

訪問地址如下:http://localhost:8080/PetWeb/

這種方式比較簡單,但是web應用程序必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat默認的應用目錄,當服務器啟動時,會加載所有這個目錄下的應用。

2.修改Server.xml文件部署


這種方式可以不必將PetWeb目錄拷貝到webapps下,直接在F:/部署。方法如下,更改$CATALINA_HOME/conf/server.xml文件,

找到以下內容:

Xml代碼:

1.<Context path ="/Pet" reloadable ="false" docBase ="F:/PetWeb" workDir ="d:/Mywebapps/emp" />
path:是訪問時的根地址,表示訪問的路徑;如上述例子中,訪問該應用程序地址如下:http://localhost:8080/Pet/

reloadable:表示可以在運行時在classes與lib文件夾下自動加載類包。其中reloadable="false"表示當應用程序中的內容發生更改之后服務器不會自動加載,這個屬性在開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。

docbase:表示應用程序的路徑,注意斜杠的方向“/”。 docBase可以使用絕對路徑,也可以使用相對路徑,相對路徑相對于webapps。

workdir:表示緩存文件的放置地址

3.增加自定義web部署文件(推薦使用,不需要重啟Tomcat )


這種方式和方法2差不多,但不是在Server.xml文件中添加Context標簽,而是在$CATALINA_HOME/conf /Catalina/localhost中添加一個xml文件,如Pet.xml.在Tomcat安裝目錄conf/Catalina /localhost下,里面有Tomcat自帶的三個應用,隨意復制其中的一個XML文件,然后修改docbase指向你自己的應用程序,并把文件名改名,各參數參見方法2中的<Context>標簽的參數,或者你也可以自己新建一個XML文件。(注意此文件名將作為Context中的path屬性值,不管文件里的path屬性值如何設置也是無效的 ),將以下內容復制過去,修改相應路徑即可。

Xml代碼:

1.<Context path ="/Pet" docBase ="F:/PetWeb"
2. debug ="0" privileged ="true" reloadable ="false" >
3.</Context>
訪問地址如下:http://localhost:8080/Pet/



注: Web應用以.war文件的形式部署



可以將JSP程序打包成一個war包放在目錄下,服務器會自動解開這個war包,并在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個Web程序的所有內容進行壓縮得到。

我們剛才是將PetWeb文件夾部署在了服務器中,我們知道可以將Web應用程序的內容打成.war 包,然后在部署在服務器上。打包請參考如下步驟:
1、打開命令提示符(cmd)
2、設置jdk環境變量
3、在命令提示符中進入項目文件夾F:/PetWeb后,鍵入如下命令:jar cvf Pet.war */ . (注意最后有個“. ”)。這樣在F:/PetWeb下應該有Pet.war文件。 (也可以打包到指定的地方,命令如下:jar cvf d:/Pet.war */ . )

部署Pet.war文件非常簡單,將剛才xml文件中的docBase ="F:/PetWeb" 更改為docBase ="F:/Pet.war" 或者直接將其拷貝到webapps目錄下就可以。然后重新啟動服務器就可以將Pet.war部署為一個Web應用程序了。

如果你夠細心的話你會發現,服務器將Pet.war文件解開,并且在webapps下面又生成了一個Pet文件夾,然后把Pet.war的內容拷貝到里面去了。我們可以通過以下方式取消自動解壓縮,將xml配置文件中的unpackWAR 屬性設置為"false" 即可。



二、動態部署


動態部署是指可以在服務器啟動之后部署web應用程序,而不用重新啟動服務器。動態部署要用到服務器提供的manager.war文件,如果在$CATALINA_HOME/webapps/下沒有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編輯$CATALINA_HOME/conf/tomcat-users.xml文件,內容如下:(關于這個文件的更多內容,請參考 Java Web應用程序的安全模型二 )

<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="coresun" password="coresun" roles="manager"/>
<user username="tomcat" password="tomcat" roles="tomcat"/>
<user username="both" password="tomcat" roles="tomcat,role1"/>
<user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

<#if lib_fun.BrowserType()==1 >
parent = window.dialogArguments.document.getElementById("hwlxcn").value;
<#else>
parent = window.opener.document.getElementById("hwlxcn").value;
</#if>
摘要: showModalDialog
參數詳細說明
使用
showModalDialog
顯示數據
,
因為緩存的原因
,
有時候數據不會立即更新
,
所以需要在
HTML
頁面的
Head
標簽內添加使網頁過期的語句
,
這樣才能使
showModalDialog
數據能夠得
到及時的更新:
<meta&...
閱讀全文
在eclipse下,package,source folder,folder都是文件夾.
它們的區別如下:
package:當你在建立一個package時,它自動建立到source folder下,也只能建立在這個目錄之下.
source folder:存放java源代碼的文件夾,當然也包括一些package文件夾,還可以包含其他文件.
項目構建后,source folder里面的java自動編譯成class文件到相應的/web-inf/classes文件夾中,其他文件也會移到/web-inf/classes相應的目錄下.
package和sourceFolder比較
相同之外:package下除了java文件也可以包含其他文件,而且編譯、打包后的文件路徑與source folder下的文件路徑有一樣規則
不同之外:1.sourceFolder靠"/"來進行上下級劃分,package靠“.”來進行上下級劃分。
2.source folder下能建package,而package下不能建source folder
3.java文件中的package屬性是按package路徑來進行賦值的,source folder路徑不參與java文件的package屬性賦值,再由第二條不同得到結論,所有source folder下的java文件package屬性都為空。
folder:里面可以放入任何文件.包括java源文件,jar文件,其他文件(例如,圖片,聲音等).在此我說明一下,如果里面含有java源文件,不管程序是否正確,eclipse都不會報錯,把它們當做普通文件處理.但是項目如果要使用這里面的文件,情況就不同了.
package,source folder,folder 之間相互轉換
package 轉成 folder 顯示:選中package, build path-> Exclude
folder 轉成 package 顯示:選中folder, build path-> Include
package 轉成 source folder 顯示:選中package, build path-> Use as Source folder
source folder 轉成 package 顯示:選中folder, build path-> Remove from BuildPath
pacage 與 source folder 的轉換同上
this.databaseEncoding = "GBK";
// this.databaseEncoding = "ISO8859-1";
this.platformEncoding = "GBK";
獲得數據庫字符時候需要轉換