摘要: 添加HTML內(nèi)容與文本內(nèi)容以前用的是innerHTML與innerText方法,最近發(fā)現(xiàn)還有insertAdjacentHTML和insertAdjacentText方法,這兩個(gè)方法更靈活,可以在指定的地方插入html內(nèi)容和文本內(nèi)容。 閱讀全文
摘要: 摘要幾個(gè)常用的客戶端JS校驗(yàn) 閱讀全文
摘要: 1. According to a recent survey, four million people die each year from diseases linked to smoking.
依照最近的一項(xiàng)調(diào)查,每年有4,000,000人死于與吸煙有關(guān)的疾病。
2. The latest surveys show that quite a few children have unpleasant associations with homework.
最近的調(diào)查顯示相當(dāng)多的孩子對(duì)家庭作業(yè)沒什么好感。
3. No invention has received more praise and abuse than Internet.
沒有一項(xiàng)發(fā)明像互聯(lián)網(wǎng)一樣同時(shí)受到如此多的贊揚(yáng)和批評(píng)。
4. People seem to fail to take into account the fact that education does not end with graduation.
閱讀全文 摘要: 封裝了Jakarta 文件上傳功能的一個(gè)類 閱讀全文 因?yàn)轫?xiàng)目進(jìn)度的需要,高溫假期間我們項(xiàng)目組集體回武漢加班.
在十堰時(shí),不知道有多么的想快點(diǎn)回到武漢(其實(shí)是太想老婆),然而回來了才發(fā)現(xiàn)武漢讓我有多苦惱.每天早晚上下班那公交車上簡(jiǎn)直就是煉獄,穿再白皙的衣服,來回這一折騰,晚上到家你會(huì)發(fā)現(xiàn)衣服似乎被泥染過.住的房子里又沒空調(diào),晚上更是熱的難以入睡.簡(jiǎn)直是煎熬...太痛苦了,不過不管怎么樣,我是土生土長(zhǎng)的農(nóng)村人,這些苦對(duì)于我來說根本不算什么, 但老婆還是陪在自己身邊.那真是辛苦她了...只期待這個(gè)項(xiàng)目盡快順利結(jié)束, 返回武漢,然后換個(gè)條件好的房子, 武漢的夏天真讓人吃不消......
祝天下所有此時(shí)此刻背著灼熱太陽勞碌的辛勞父母健康平安,千萬莫中暑...... 摘要: 項(xiàng)目中為方便用戶在添加上傳文件時(shí)選擇自己想要保存到的文件夾,著手寫了一個(gè)程序?qū)崿F(xiàn)遍歷數(shù)據(jù)庫中所有的文件夾而形成有層次感的下拉列表,涉及到的代碼基本如下:
首先介紹下表結(jié)構(gòu):
必須有的字段有:folderId, parentFolderId, folderName 閱讀全文 其實(shí)也不知道為什么,這幾天誰都不想理,總之心情很糟糕,說不清楚到底為什么,生活的煩惱,工作的不快,哎郁悶,....得收拾心情啊, 摘要: 在Liferay里面,有很多內(nèi)置的示例portlet,這為我們?cè)贓XT環(huán)境下做二次開發(fā)新的portlet提供很好的參考依據(jù),其中CMS模塊里的日志文章portlet,功能尤為強(qiáng)大,可以通過配置Structure和Template可以很容易實(shí)現(xiàn)一些新聞或是其他內(nèi)容版面,寫好基本的Structure、Template *.XSL文件,可以通過擴(kuò)展,再復(fù)雜的頁面都可以通過配置模板實(shí)現(xiàn),這為發(fā)布新聞信息提供了非常方便的解決方案。下面我將自己在項(xiàng)目中遇到的幾個(gè)問題簡(jiǎn)單記錄一下 閱讀全文 摘要: 三種通過js實(shí)現(xiàn)的動(dòng)態(tài)多文件上傳代碼 閱讀全文 摘要: 要有這么一個(gè)監(jiān)聽器,當(dāng)加入session時(shí)就可以觸發(fā)一個(gè)加入session事件,在session過期時(shí)就可以觸發(fā)一個(gè)刪除事件,那么我們的把要處理的東西加入到這兩個(gè)事件中就可以做很多于SESSION相關(guān)連的事。如在線用戶的管理,單點(diǎn)登陸等等。
在J2EE中可以實(shí)現(xiàn)HttpSessionBindingListener接口,此接口有兩要實(shí)現(xiàn)的方法。
void valueBound(HttpSessionBindingEvent event) 當(dāng)實(shí)現(xiàn)此接口的監(jiān)聽類和session綁定時(shí)觸發(fā)此事件。
void valueUnbound(HttpSessionBindingEvent event) 當(dāng)session過期或?qū)崿F(xiàn)此接口的監(jiān)聽類卸裁時(shí)觸發(fā)此事件。
下面是一個(gè)示例解決方案:可以把登陸用戶的信息記錄在緩沖池中,當(dāng)SESSION過期時(shí),用戶信息自動(dòng)刪除。 閱讀全文 摘要: 在使用JDBC連接數(shù)據(jù)庫的時(shí),我們會(huì)采用executeQuery(String sql)獲得一個(gè)結(jié)果集。當(dāng)數(shù)據(jù)庫結(jié)構(gòu)變化或者獲得其他數(shù)據(jù)庫表結(jié)果集的時(shí)候我們需要將ResultSet結(jié)果集根據(jù)不同的數(shù)據(jù)結(jié)構(gòu)重新遍歷。
如何才能建立一個(gè)與數(shù)據(jù)庫結(jié)構(gòu)無關(guān)的JDBC連接呢?我們可以通過使用ResultSetMetaData()方法獲得表結(jié)構(gòu)。然后使用Object[]數(shù)組遍歷結(jié)果集。當(dāng)我們要取得相應(yīng)的結(jié)果時(shí),我們可以使用Iterator迭代器。只要遍歷迭代器就可以取出結(jié)果。
閱讀全文 摘要: 收藏寫好的目錄樹程序 閱讀全文 摘要: 在目前使用的現(xiàn)有框架當(dāng)中,利用spring的AOP機(jī)制來控制事務(wù)處理是目前最流行的一種控制事務(wù)的方式。
但是我們?cè)谀撤N使用場(chǎng)合的過程中,為什么有時(shí)事務(wù)處理老是不起作用呢?這里,為您道出原因之一,
首先請(qǐng)看一段話:
Spring的事務(wù)實(shí)現(xiàn)采用基于AOP的攔截器來實(shí)現(xiàn),如果沒有在事務(wù)配置的時(shí)候注明回滾的checked exception,那么只有在發(fā)生了unchecked exception的時(shí)候,才會(huì)進(jìn)行事務(wù)回滾。
閱讀全文 摘要: 一、Java ClassLoader
1,什么是ClassLoader
與 C 或 C++ 編寫的程序不同,Java 程序并不是一個(gè)可執(zhí)行文件,而是由許多獨(dú)立的類文件組成,每一個(gè)文件對(duì)應(yīng)于一個(gè) Java 類。
此外,這些類文件并非立即全部都裝入內(nèi)存,而是根據(jù)程序需要裝入內(nèi)存。ClassLoader 是 JVM 中將類裝入內(nèi)存的那部分。
而且,Java ClassLoader 就是用 Java 語言編寫的。這意味著創(chuàng)建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小細(xì)節(jié)。
閱讀全文 摘要: 隨著內(nèi)容管理應(yīng)用程序的日益普及,對(duì)于公共的、標(biāo)準(zhǔn)的內(nèi)容倉庫 API 的需求也變得漸漸明顯起來。Content Repository for Java ? Technology API(JSR-170)的目標(biāo)就是提供這樣一個(gè)接口。在這篇文章中,我將用開放源碼的 JSR-170 實(shí)現(xiàn) Apache Jackrabbit,設(shè)計(jì)一個(gè)簡(jiǎn)單的類似維京百科全書的后端,研究這個(gè)前途遠(yuǎn)大的框架所提供的特性。 閱讀全文 摘要: 在Liferay中,列表通常是使用SearchContainer來實(shí)現(xiàn)的,如BBS的欄目列表等。在Liferay的源代碼中,JSP夾雜了大量的本應(yīng)在Action中實(shí)現(xiàn)的代碼,因此導(dǎo)致很難看懂。我嘗試寫一個(gè)Portlet,結(jié)果就在JSP處耗費(fèi)了很長(zhǎng)時(shí)間。 在此簡(jiǎn)單總結(jié)一下SearchContainer的用法,內(nèi)容有些不恰當(dāng)。具體可參考message_boards/view.jsp中的代碼。
1.1 概述
作為一個(gè)條目的列表,應(yīng)該包括幾個(gè)方面的內(nèi)容:
l Table的標(biāo)題行
l Table的內(nèi)容
l 每一個(gè)條目允許的操作
l 分頁 閱讀全文 摘要: 有一個(gè)J2EE項(xiàng)目,碰到一些性能問題。客戶用LoadRunner測(cè)試,十個(gè)用戶并發(fā)測(cè)試登錄,就導(dǎo)致系統(tǒng)崩潰。經(jīng)過檢查,發(fā)現(xiàn)是數(shù)據(jù)池設(shè)置的太小,在IBM WPS里面設(shè)置的數(shù)據(jù)池缺省是1-10,結(jié)果當(dāng)用5個(gè)并發(fā)測(cè)試的時(shí)候,就總是有5個(gè)進(jìn)程在等待數(shù)據(jù)連接。這樣,系統(tǒng)自然通不過測(cè)試了。后來把數(shù)據(jù)池改大了,測(cè)試通過,而且速度飛快。 閱讀全文 摘要: 關(guān)于Portlet的一些概念性的文字網(wǎng)絡(luò)上很多,谷歌或是百度一下可以很容易搜索到,下面我把自己覺得容易混淆和模糊的幾個(gè)知識(shí)點(diǎn)做下簡(jiǎn)單介紹:
1、Portlet Request & URL
在一個(gè) Portal 頁面中,通常都包含了多個(gè) Portlet ,在一個(gè)時(shí)刻用戶只能與一個(gè) Portlet 交互,當(dāng)用戶向一個(gè) Portlet 發(fā)出請(qǐng)求(例如點(diǎn)擊了“ submit ”按鈕),整個(gè) Portlet 頁面將會(huì)重新構(gòu)成。在這個(gè)過程中,是否有與用戶交互的 Portlet 處理方式顯然是不同的,而且用戶沒有與之交互的 Portlet 顯然不應(yīng)該接收到用戶的請(qǐng)求參數(shù)。
閱讀全文 摘要: 近階段手頭上進(jìn)行的是一個(gè)liferay項(xiàng)目,由于是初次學(xué)習(xí)和使用liferay技術(shù),在項(xiàng)目的開發(fā)過程中遇到了很多的問題,等項(xiàng)目結(jié)束我會(huì)抽時(shí)間好好整理下關(guān)于liferay開發(fā)的一些心得體會(huì)。在此先記下若干(對(duì)熟手來說可能很弱智~~~),我會(huì)不斷更新: 閱讀全文
JNDI連接Windows Active Directory教程 做個(gè)順?biāo)饲椋瑒e謝我,謝謝我的窮兄弟吧~~~
LDAP Programming With Java 本人也是首次在項(xiàng)目中用到LDAP服務(wù)作為用戶管理,搜集了一些參考資料,現(xiàn)在貼出來供大家分享。
LDAP技術(shù)總結(jié)文檔 精心收藏的jbpm3.1cn.chm中文版幫助文檔供有需要的哥們下載,有任何好的學(xué)習(xí)和使用JBPM心得期待指導(dǎo)和分享。
jbpm3.1cn.rar
依照最近的一項(xiàng)調(diào)查,每年有4,000,000人死于與吸煙有關(guān)的疾病。
2. The latest surveys show that quite a few children have unpleasant associations with homework.
最近的調(diào)查顯示相當(dāng)多的孩子對(duì)家庭作業(yè)沒什么好感。
3. No invention has received more praise and abuse than Internet.
沒有一項(xiàng)發(fā)明像互聯(lián)網(wǎng)一樣同時(shí)受到如此多的贊揚(yáng)和批評(píng)。
4. People seem to fail to take into account the fact that education does not end with graduation.
閱讀全文 摘要: 封裝了Jakarta 文件上傳功能的一個(gè)類 閱讀全文 因?yàn)轫?xiàng)目進(jìn)度的需要,高溫假期間我們項(xiàng)目組集體回武漢加班.
在十堰時(shí),不知道有多么的想快點(diǎn)回到武漢(其實(shí)是太想老婆),然而回來了才發(fā)現(xiàn)武漢讓我有多苦惱.每天早晚上下班那公交車上簡(jiǎn)直就是煉獄,穿再白皙的衣服,來回這一折騰,晚上到家你會(huì)發(fā)現(xiàn)衣服似乎被泥染過.住的房子里又沒空調(diào),晚上更是熱的難以入睡.簡(jiǎn)直是煎熬...太痛苦了,不過不管怎么樣,我是土生土長(zhǎng)的農(nóng)村人,這些苦對(duì)于我來說根本不算什么, 但老婆還是陪在自己身邊.那真是辛苦她了...只期待這個(gè)項(xiàng)目盡快順利結(jié)束, 返回武漢,然后換個(gè)條件好的房子, 武漢的夏天真讓人吃不消......
祝天下所有此時(shí)此刻背著灼熱太陽勞碌的辛勞父母健康平安,千萬莫中暑...... 摘要: 項(xiàng)目中為方便用戶在添加上傳文件時(shí)選擇自己想要保存到的文件夾,著手寫了一個(gè)程序?qū)崿F(xiàn)遍歷數(shù)據(jù)庫中所有的文件夾而形成有層次感的下拉列表,涉及到的代碼基本如下:
首先介紹下表結(jié)構(gòu):
必須有的字段有:folderId, parentFolderId, folderName 閱讀全文 其實(shí)也不知道為什么,這幾天誰都不想理,總之心情很糟糕,說不清楚到底為什么,生活的煩惱,工作的不快,哎郁悶,....得收拾心情啊, 摘要: 在Liferay里面,有很多內(nèi)置的示例portlet,這為我們?cè)贓XT環(huán)境下做二次開發(fā)新的portlet提供很好的參考依據(jù),其中CMS模塊里的日志文章portlet,功能尤為強(qiáng)大,可以通過配置Structure和Template可以很容易實(shí)現(xiàn)一些新聞或是其他內(nèi)容版面,寫好基本的Structure、Template *.XSL文件,可以通過擴(kuò)展,再復(fù)雜的頁面都可以通過配置模板實(shí)現(xiàn),這為發(fā)布新聞信息提供了非常方便的解決方案。下面我將自己在項(xiàng)目中遇到的幾個(gè)問題簡(jiǎn)單記錄一下 閱讀全文 摘要: 三種通過js實(shí)現(xiàn)的動(dòng)態(tài)多文件上傳代碼 閱讀全文 摘要: 要有這么一個(gè)監(jiān)聽器,當(dāng)加入session時(shí)就可以觸發(fā)一個(gè)加入session事件,在session過期時(shí)就可以觸發(fā)一個(gè)刪除事件,那么我們的把要處理的東西加入到這兩個(gè)事件中就可以做很多于SESSION相關(guān)連的事。如在線用戶的管理,單點(diǎn)登陸等等。
在J2EE中可以實(shí)現(xiàn)HttpSessionBindingListener接口,此接口有兩要實(shí)現(xiàn)的方法。
void valueBound(HttpSessionBindingEvent event) 當(dāng)實(shí)現(xiàn)此接口的監(jiān)聽類和session綁定時(shí)觸發(fā)此事件。
void valueUnbound(HttpSessionBindingEvent event) 當(dāng)session過期或?qū)崿F(xiàn)此接口的監(jiān)聽類卸裁時(shí)觸發(fā)此事件。
下面是一個(gè)示例解決方案:可以把登陸用戶的信息記錄在緩沖池中,當(dāng)SESSION過期時(shí),用戶信息自動(dòng)刪除。 閱讀全文 摘要: 在使用JDBC連接數(shù)據(jù)庫的時(shí),我們會(huì)采用executeQuery(String sql)獲得一個(gè)結(jié)果集。當(dāng)數(shù)據(jù)庫結(jié)構(gòu)變化或者獲得其他數(shù)據(jù)庫表結(jié)果集的時(shí)候我們需要將ResultSet結(jié)果集根據(jù)不同的數(shù)據(jù)結(jié)構(gòu)重新遍歷。
如何才能建立一個(gè)與數(shù)據(jù)庫結(jié)構(gòu)無關(guān)的JDBC連接呢?我們可以通過使用ResultSetMetaData()方法獲得表結(jié)構(gòu)。然后使用Object[]數(shù)組遍歷結(jié)果集。當(dāng)我們要取得相應(yīng)的結(jié)果時(shí),我們可以使用Iterator迭代器。只要遍歷迭代器就可以取出結(jié)果。
閱讀全文 摘要: 收藏寫好的目錄樹程序 閱讀全文 摘要: 在目前使用的現(xiàn)有框架當(dāng)中,利用spring的AOP機(jī)制來控制事務(wù)處理是目前最流行的一種控制事務(wù)的方式。
但是我們?cè)谀撤N使用場(chǎng)合的過程中,為什么有時(shí)事務(wù)處理老是不起作用呢?這里,為您道出原因之一,
首先請(qǐng)看一段話:
Spring的事務(wù)實(shí)現(xiàn)采用基于AOP的攔截器來實(shí)現(xiàn),如果沒有在事務(wù)配置的時(shí)候注明回滾的checked exception,那么只有在發(fā)生了unchecked exception的時(shí)候,才會(huì)進(jìn)行事務(wù)回滾。
閱讀全文 摘要: 一、Java ClassLoader
1,什么是ClassLoader
與 C 或 C++ 編寫的程序不同,Java 程序并不是一個(gè)可執(zhí)行文件,而是由許多獨(dú)立的類文件組成,每一個(gè)文件對(duì)應(yīng)于一個(gè) Java 類。
此外,這些類文件并非立即全部都裝入內(nèi)存,而是根據(jù)程序需要裝入內(nèi)存。ClassLoader 是 JVM 中將類裝入內(nèi)存的那部分。
而且,Java ClassLoader 就是用 Java 語言編寫的。這意味著創(chuàng)建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小細(xì)節(jié)。
閱讀全文 摘要: 隨著內(nèi)容管理應(yīng)用程序的日益普及,對(duì)于公共的、標(biāo)準(zhǔn)的內(nèi)容倉庫 API 的需求也變得漸漸明顯起來。Content Repository for Java ? Technology API(JSR-170)的目標(biāo)就是提供這樣一個(gè)接口。在這篇文章中,我將用開放源碼的 JSR-170 實(shí)現(xiàn) Apache Jackrabbit,設(shè)計(jì)一個(gè)簡(jiǎn)單的類似維京百科全書的后端,研究這個(gè)前途遠(yuǎn)大的框架所提供的特性。 閱讀全文 摘要: 在Liferay中,列表通常是使用SearchContainer來實(shí)現(xiàn)的,如BBS的欄目列表等。在Liferay的源代碼中,JSP夾雜了大量的本應(yīng)在Action中實(shí)現(xiàn)的代碼,因此導(dǎo)致很難看懂。我嘗試寫一個(gè)Portlet,結(jié)果就在JSP處耗費(fèi)了很長(zhǎng)時(shí)間。 在此簡(jiǎn)單總結(jié)一下SearchContainer的用法,內(nèi)容有些不恰當(dāng)。具體可參考message_boards/view.jsp中的代碼。
1.1 概述
作為一個(gè)條目的列表,應(yīng)該包括幾個(gè)方面的內(nèi)容:
l Table的標(biāo)題行
l Table的內(nèi)容
l 每一個(gè)條目允許的操作
l 分頁 閱讀全文 摘要: 有一個(gè)J2EE項(xiàng)目,碰到一些性能問題。客戶用LoadRunner測(cè)試,十個(gè)用戶并發(fā)測(cè)試登錄,就導(dǎo)致系統(tǒng)崩潰。經(jīng)過檢查,發(fā)現(xiàn)是數(shù)據(jù)池設(shè)置的太小,在IBM WPS里面設(shè)置的數(shù)據(jù)池缺省是1-10,結(jié)果當(dāng)用5個(gè)并發(fā)測(cè)試的時(shí)候,就總是有5個(gè)進(jìn)程在等待數(shù)據(jù)連接。這樣,系統(tǒng)自然通不過測(cè)試了。后來把數(shù)據(jù)池改大了,測(cè)試通過,而且速度飛快。 閱讀全文 摘要: 關(guān)于Portlet的一些概念性的文字網(wǎng)絡(luò)上很多,谷歌或是百度一下可以很容易搜索到,下面我把自己覺得容易混淆和模糊的幾個(gè)知識(shí)點(diǎn)做下簡(jiǎn)單介紹:
1、Portlet Request & URL
在一個(gè) Portal 頁面中,通常都包含了多個(gè) Portlet ,在一個(gè)時(shí)刻用戶只能與一個(gè) Portlet 交互,當(dāng)用戶向一個(gè) Portlet 發(fā)出請(qǐng)求(例如點(diǎn)擊了“ submit ”按鈕),整個(gè) Portlet 頁面將會(huì)重新構(gòu)成。在這個(gè)過程中,是否有與用戶交互的 Portlet 處理方式顯然是不同的,而且用戶沒有與之交互的 Portlet 顯然不應(yīng)該接收到用戶的請(qǐng)求參數(shù)。
閱讀全文 摘要: 近階段手頭上進(jìn)行的是一個(gè)liferay項(xiàng)目,由于是初次學(xué)習(xí)和使用liferay技術(shù),在項(xiàng)目的開發(fā)過程中遇到了很多的問題,等項(xiàng)目結(jié)束我會(huì)抽時(shí)間好好整理下關(guān)于liferay開發(fā)的一些心得體會(huì)。在此先記下若干(對(duì)熟手來說可能很弱智~~~),我會(huì)不斷更新: 閱讀全文
以下是因項(xiàng)目需要摘錄出的liferay中的基本文章結(jié)構(gòu)和模板,開發(fā)者可以根據(jù)這些基本的結(jié)構(gòu)和模板進(jìn)行擴(kuò)展,以滿足自己的需求。新版本的liferay是否完全適用等待進(jìn)一步使用檢驗(yàn),暫時(shí)在Liferay 4.3 Final版中使用還未發(fā)現(xiàn)什么大的問題。
Liferay 基本結(jié)構(gòu)和模板介紹
JNDI連接Windows Active Directory教程 做個(gè)順?biāo)饲椋瑒e謝我,謝謝我的窮兄弟吧~~~
LDAP Programming With Java 本人也是首次在項(xiàng)目中用到LDAP服務(wù)作為用戶管理,搜集了一些參考資料,現(xiàn)在貼出來供大家分享。
LDAP技術(shù)總結(jié)文檔 精心收藏的jbpm3.1cn.chm中文版幫助文檔供有需要的哥們下載,有任何好的學(xué)習(xí)和使用JBPM心得期待指導(dǎo)和分享。
jbpm3.1cn.rar
也不知道該說些什么,只覺得自己應(yīng)該保持冷靜,坦然去面對(duì)生活中發(fā)生的一切。革命尚未成功,同志仍需努力,我應(yīng)該沉著繼續(xù)做好目前的工作,而且應(yīng)該更加努力。自己過好了才有余力去幫他們排憂解難。只愿自己的親朋好友個(gè)個(gè)能健康平安,開心過每一天!
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
1 | 2 | 3 | 4 | 5 | 6 | 7 | |||
8 | 9 | 10 | 11 | 12 | 13 | 14 | |||
15 | 16 | 17 | 18 | 19 | 20 | 21 | |||
22 | 23 | 24 | 25 | 26 | 27 | 28 | |||
29 | 30 | 31 | 1 | 2 | 3 | 4 |
常用鏈接
留言簿(4)
隨筆分類
隨筆檔案
搜索
最新評(píng)論

- 1.?re: Portlet學(xué)習(xí)分析筆記[未登錄]
- 來學(xué)習(xí)一下
- --zz
- 2.?re: 幾種js實(shí)現(xiàn)的動(dòng)態(tài)多文件上傳
- 最后一種不能用
- --11
- 3.?re: insertAdjacentHTML方法示例[未登錄]
- 1
- --1
- 4.?re: Portlet學(xué)習(xí)分析筆記
- 寫的很不錯(cuò)。學(xué)習(xí)了
- --chailieyang
- 5.?re: insertAdjacentHTML方法示例
- 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
- --啊打發(fā)