Вы можете запросить несколько разрешений (из разных групп) в одном запросе. Для этого вам нужно добавить все разрешения для строкового массива, который вы поставляете в качестве первого параметра API-интерфейса requestPermissions, например:
requestPermissions(new String[]{
Manifest.permission.READ_CONTACTS,
Manifest.permission.ACCESS_FINE_LOCATION},
ASK_MULTIPLE_PERMISSION_REQUEST_CODE);
. При этом вы увидите всплывающее окно разрешения как стек множественных всплывающих окон. Конечно, вам нужно обрабатывать варианты принятия и отклонения (включая опции «Никогда не задавайте снова») для каждого разрешения. То же самое было прекрасно описано в здесь .
Я заставил StringTemplate работать с Spring. В основном все, что потребовалось, было пользовательским представлением.
, Но сначала, правовая оговорка: Это - экспериментальный взлом. Я никогда не использовал это в производственном коде, и он мог использовать некоторое улучшение, прежде чем это произойдет. Я думаю, что это соответствует для ответа на вопрос о том, как легко StringTemplate интегрирует с сетью платформу MVC, как бы то ни было.
Ссылка: сеть Spring документация MVC
StringTemplateView.java:
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.antlr.stringtemplate.StringTemplate;
import org.antlr.stringtemplate.StringTemplateGroup;
import org.springframework.core.io.Resource;
import org.springframework.web.servlet.view.InternalResourceView;
public class StringTemplateView extends InternalResourceView {
@Override
protected void renderMergedOutputModel(Map model, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// Provides a Spring resource descriptor referring to the .st file
Resource templateFile = getApplicationContext().getResource(getUrl());
// Kind of redundant...
StringTemplateGroup group = new StringTemplateGroup("group", templateFile.getFile().getParent());
StringTemplate template = group.getInstanceOf(getBeanName());
template.setAttributes(model);
// Output to client
PrintWriter writer = response.getWriter();
writer.print(template);
writer.flush();
writer.close();
}
}
И пример просматривают определение сопоставителя:
<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="myapp.web.view.StringTemplateView"/>
<property name="prefix" value="/WEB-INF/st-views/"/>
<property name="suffix" value=".st"/>
</bean>
Быстрый поиск привел меня к этому демонстрация использования StringTemplate для представления Spring .
Некий Гарри Карамидас поделился в декабре 2008 года адаптером Struts на официальном сайте ST. Прямая ссылка на ZIP-файл.
Фреймворк Java WEB с открытым исходным кодом JPublish очень хорошо работает с ST. Перейдя по ссылке выше, вы найдете там следующее:
Удачи,