необходимые шаги для добавления taglib в проект (JSTL1.1 в качестве примера):
1. добавить taglib-джарник в WEB-INF\lib
2. (возможно, не требуется) разархивировать tld-файл из джарника и скопировать также в WEB-INF (или в поддиректорию, например, WEB-INF\tags)
3. в web.xml добавить:
<_jsp-config>
<_taglib>
<_taglib-uri>http://java.sun.com/jstl/core<_/taglib-uri>
<_taglib-location>/WEB-INF/tags/c.tld<_/taglib-location>
<_/taglib>
<_/jsp-config>
d) включить taglib на jsp-страницу:
<_%@ taglib uri="http://java.sun.com/jstl/core"; prefix="c" %>
<%-- блогспот хавает выражения в треугольных скобках) -->
--------
If web.xml is generated with XDoclet you have to put the web.xml part in a XDoclet merge file named "taglibs.xml".
четверг, 27 мая 2010 г.
понедельник, 24 мая 2010 г.
Jahia CE. templates
Jahia CE
заметки по templates.
настройки ПО для создания темплейтов: http://www.jahia.org/cms/lang/en/home/Jahiapedia/Jahia_Templates/Environment_and_tools
1. для поддержки кириллицы необходимо сами jsp-файлы создавать в кодировке UTF-8, иначе томкэт (?) их не распознаёт. (поменять можно в эклипсе - при этом рушится
русскоязычное в нём, или эе в простом виндовом блокноте)
2. при создании темплейта в
C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates\src\main\webapp\WEB-INF\templates.xml
должно содержаться нечто подобное:
page-type="pgu_templates:test"/>
при этом home.jsp лежит в C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates\src\main\webapp
3. структура темплейта:
<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8" %>
Content that is going to appear in the html section
Content that is going to appear in the html section
4. деплоинг в jahia набора темплейтов (не из эклипса, просто из ОС):
C:\javamisc\maven\apache-maven-2.2.1\bin\pgu_templates>C:\javamisc\maven\apache-maven-2.2.1\bin\mvn install war:exploded jahia:deploy
после можно томкэт не перезапускать, подхватывается на лету
теоретически при работе через эклипс в момент создания проекта maven ругается, что сделать этого не может
(As long as the bug http://jira.codehaus.org/browse/MNGECLIPSE-1054 has not been fixed, you need to rename the resource bundle under
src\main\resources\jahiatemplates\__resourceBundleName__.properties to the name you have chosen in the popup, otherwise it would have been renamed already.)
у меня пофиксить злобное поведение пока не получилось.
================================
5. главная страница (например, home.jsp)
никакого другого jsp-кода вставлять нельзя, зато страница вставляет файл при показе файла, а не при транслиции (в отличие от )
6.
в definitions.cnd [содержимое квадратных скобок] должно совпадать с page-type в templates.xml.
definitions.cnd:
[pgu_templates:home] > jnt:page
containerList navLink (jnt:navLink)
[pgu_templates:portal] > jnt:page
containerList navLink (jnt:navLink)
__________________________
templates.xml:
...
page-type="pgu_templates:portal"/>
...
пятница, 14 мая 2010 г.
android. приложение-мастер (страницы, переходы по кнопкам). activities
чтобы не забыть.
нигде не встретила информации, как создавать многостраничные приложения, везде только крошечные примеры в один класс длиной.
по собственному опыту (возможно, решение далеко от оптимального) - основываться на Activities (собственно окна, обладают функуиональностью, которую в не наследующих от Activity классах можно получить только
при помощи контекста класса, от неё наследующего). из активностей создавать кнопки, функционал - в листенерах кнопок.
1. активность
public class Register extends Activity{
public void createControls(){
try{
//сохранение контекста
Common.setContextRegister(this);
// выбрать xml с интерфейсом
setContentView(R.layout.register_page);
ButtonsHolder.setBackBtn(new BackBtn( (Button) findViewById(R.id.backFromRegisterBtn), this));
}
catch (Exception e){
e.printStackTrace();
Common.showAlert("произошла ошибка: "+e.toString(), this);
}
}
2. прописать активность в AndroidManifest.xml
android:label="@string/app_name">
android:label="@string/app_name">
3.
Контексты активностей (this) сохранять отдельно, основываясь на них, завершать активности (например, по нажатию кнопок):
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
/**
* кнопка "назад"
*
*/
public class BackBtn extends AbstractBtn{
private Context contextToClose;
public BackBtn(Button btn, Context contextToClose) {
super(btn);
this.contextToClose = contextToClose;
}
@Override
protected void addListener() {
btn.setOnClickListener(new OnClickListener() {
// обработка нажатия кнопки
public void onClick(View arg0) {
((Activity)contextToClose).finish();
}
});
}
}
4. запускать новые активности - например, тоже по нажатию кнопок. примерно так:
//запуск активности
Intent passInfo = new Intent();
passInfo.setClassName("ru.diasoft.repareMyStreet", "ru.diasoft.repareMyStreet.Register");
Common.getContextStartPage().startActivity(passInfo);
5. да, google maps. MapActivity - тоже активность
public class Map extends MapActivity {
...
}
или
public class Smth extends Activity {
...
}
Подписаться на:
Сообщения (Atom)