Действие не вызывается в struts2 при повторном нажатии на ссылку

Это зависит от того, сколько данных у вас есть.

Если вы хотите сохранить партию пар ключ / значение, например, некоторые пользовательские настройки, вы можете использовать класс Preferences который реализован с использованием реестра Windows, конфигурационных файлов в Linux и любого другого предпочтительного способа хранения пользовательских настроек на других форматах.

Когда у вас есть фактические данные, которые слишком много для реестра, но недостаточно чтобы гарантировать базу данных (что-то в порядке нескольких МБ), использование одного или нескольких плоских файлов может быть решением. Когда данные являются сложными, может быть хорошей идеей использовать стандартизованный формат, например XML, вместо того, чтобы что-то запустили. Java имеет классы, которые позволяют легко разбирать и сериализовать XML. Альтернативным быстрым и грязным решением было бы использовать ObjectStreams для сохранения и восстановления целых объектов. Это очень легко реализовать, но может быть не очень эффективным, потому что в нем хранится много метаинформации, которая, вероятно, не нужна.

Но когда у вас много данных (больше, чем вам удобно читать и писать полностью), это может быть разумным шагом для использования базы данных. База данных позволяет вам легко получить доступ к огромным объемам данных (в заказах нескольких ГБ) и предлагает вам множество бесплатных функций, которые трудно реализовать самостоятельно (например, поиск записей с использованием индексов). Базы данных не являются волшебными. Однако они также используют файлы для хранения своих данных (файлы с очень умной структурой). Вы можете копировать каждую функцию базы данных самостоятельно. Но зачем вам изобретать колесо, когда вы можете просто использовать существующее решение?

1
задан Jothi 16 August 2010 в 10:41
поделиться

1 ответ

Убедитесь, что вы явно отключили кеширование на своих страницах. Вот как это делается в верхней части JSP в скриптлете:

<%
    response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
    response.setHeader("Pragma","no-cache"); //HTTP 1.0
    response.setDateHeader ("Expires", -1); 
%>

Для дополнительной возможности очистки кеша IE вы можете добавить второй ниже вашего . Полный код, включая приведенный выше скрипт, выглядит следующим образом:

<%
    response.setHeader("Cache-Control","no-cache"); 
    response.setHeader("Pragma","no-cache"); 
    response.setDateHeader ("Expires", -1);
%>
<html>
<head></head> 
<body>
   Your body content
</body>

<!--[if IE]>
<head> 
    <meta http-equiv="pragma" content="no-cache"/> 
    <meta http-equiv="Expires" content="-1"/> 
</head> 
<![endif]-->

</html>

Обратите внимание, что вы указываете второй недопустимый в условных комментариях, поэтому его получает только наш специальный друг IE.

2
ответ дан 2 September 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: